Zum Inhalt springen
Der Guide für ein smartes Leben.
Alles im Fluss

Teil 3: PHP-Frameworks Teil 9 - Flow 3

Autoren: Redaktion pcmagazin und Tobias Hauser • 11.3.2010 • ca. 1:45 Min

Models Bevor wir einen Blick in den Controller und das Template werfen, ist der Ausgangspunkt bei Flow3 immer die Domain. In unserem Fall sollen Frameworks mit ihren Lizenzen gezeigt werden. Die Domain wird in Models umgesetzt. In unserem Fall ist das zentrale Model also Framework. Dafür müsse...

Models

Bevor wir einen Blick in den Controller und das Template werfen, ist der Ausgangspunkt bei Flow3 immer die Domain. In unserem Fall sollen Frameworks mit ihren Lizenzen gezeigt werden. Die Domain wird in Models umgesetzt. In unserem Fall ist das zentrale Model also Framework.

Dafür müssen Sie keine Datenbank anlegen, darum kümmert sich standardmäßig Flow3. Sie schreiben einfach das zugehörige Objekt. Dabei müssen Sie nur den Coding-Guidelines von Flow3 folgen. Generell gilt hier, dass die Verzeichnisse den Namespace-Bestandteilen entsprechen und die Dateinamen den Klassennamen.

PHP - Frameworks - Flow 3
Startpunkt: Die erste eigene Anwendung ist eingerichtet.
© Archiv

Im ersten Schritt benötigen Sie das Model für ein Framework. Sie legen dazu die Datei Framework.php im (bisher noch nicht existierenden) Verzeichnis Classes/Domain/Model Ihres Pakets an. Diese Datei befüllen Sie dann mit der Klasse Framework, die wiederum selbst drei Eigenschaften enthält, die ID, Name und Lizenz widerspiegeln.

Hier der erste Teil mit den Eigenschaften:

<?php
declare(ENCODING = 'utf-8');
namespace F3\Frameworks\Domain\Model;
/**
* Ein Framework
*
* @scope prototype
* @entity
*/
class Framework {
/**
* ID des Frameworks
*
* @var string
* @identity
*/
protected $identifier = '';
/**
* Titel des Frameworks
*
* @var string
*/
protected $name = '';
/**
* Lizenz des Frameworks
*
* @var string
*/
protected $licence = '';

Die Eigenschaften werden dabei jeweils von Kommentaren eröffnet. Dabei sind die Kommentare mit @-Zeichen für Flow3 relevant, denn sie geben Informationen wie den Datentyp und bei der ID auch den Zweck der Eigenschaft an. Dann folgen die Methoden. Sie dienen dazu, die Eigenschaften auszulesen und zu setzen. Der Konstruktor erstellt ein neues Framework.

/**
* Erstellt neues Framework
*
*/
public function __construct() {
$this->posts = new
\SplObjectStorage();
}
/**
* Legt ID fest
*
* @param string $identifier Die ID
* @return void
*/
public function setIdentifier
($identifier) {
$this->identifier = $identifier;
}
/**
* Liefert ID
*
* @return string
Die ID
*/
public function
getIdentifier() {
return $this->
identifier;
}
// Methoden für die
Eigenschaften name
und licence
}
?>

Das Model ist nun erstellt. Die Datenspeicherung übernimmt Flow3 selbst. Standardmäßig wird in einer lokalen SQLite-Datenbank gespeichert, dem sogenannten Content Repository. Zu finden ist es unter Data/Persistent/Typo3CR.db. Die Datenspeicherung kann allerdings auch geändert werden. Hierzu dient die Flow3-Konfiguration.

Sie basiert auf YAML. Vorsicht: nicht verwechseln mit dem CSS-Framework. Die Konfigurationsdateien finden Sie im Unterverzeichnis Configuration. Auf Hauptebene sind dort die zentralen Konfigurationsdateien zu finden, in den einzelnen Verzeichnissen liegen die ergänzenden Konfigurationsdateien für die verschiedenen Kontexte.

Dort können Sie zum Beispiel für den Development-Space einen anderen Datenstand festlegen. Aber auch auf Paketebene kann konfiguriert werden. Das Verzeichnis Configuration im Paket-Verzeichnis ist standardmäßig zwar leer, aber Sie können Konfigurationsdateien anlegen.