Alles im Fluss

Teil 3: PHP-Frameworks Teil 9 - Flow 3

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

© Archiv

Startpunkt: Die erste eigene Anwendung ist eingerichtet.

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.

Mehr zum Thema

HTML5: Quick Reference Guide
Ratgeber: "HTML5"

Die wichtigsten Tags auf einen Blick: In unserem praktischen Arbeitsblatt finden Sie einen wertvollen Begleiter für die Umstellung Ihrer Webprojekte…
internet, webdesign, google, content, ranking, seo, suchmaschine
Ratgeber: Urheberrecht

Einzigartige Inhalte bieten Lesern Mehrwert und sind ein wichtiges Qualitätsmerkmal. Ärgerlich, wenn sich jemand durch Kopieren an fremden Ergebnissen…
Die besten HTML5-Tipps
Neue Tipps & Tricks für blitz.io

Wer die Leistung einer Applikation ermitteln möchte, braucht keine Skripte zu schreiben, sondern kann einen der zahlreichen Online-Dienste einspannen.…
image.jpg
Ratgeber: Webentwicklung

Die clientseitige Javascript-Entwicklung bietet fast keine Entwicklungsumgebungen und auch keine vernünftigen Werkzeuge zur Fehlersuche. Eine der…
internet, webdesign, meteor, webapplikationen
Ratgeber

Mit Meteor sollen Entwickler in kurzer Zeit Umgebungen für Webapplikationen erstellen können, ohne sich um lästige Details kümmern zu müssen. Wir…