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

Youtube Sperre umgehen GEMA
Videos freischalten

So umgehen Sie die GEMA-Sperre bei Youtube. Was Sie dazu brauchen, und wie es am einfachsten geht.
Neue Fritzboxen unterstützen den AC-Standard.
WLAN-Geschwindigkeit verdoppeln

Mehr WLAN-Geschwindigkeit: Mit dem WLAN-Standard 802.11ac und den richtigen Geräten und Einstellungen verdoppeln Sie den Datendurchsatz.
Netflix auf dem TV
Programm in der Übersicht

Welche Filme und Serien gibt es bei Netflix eigentlich zu sehen? Was ist neu im Streaming-Angebot? Diese Antworten helfen weiter.
Netflix
Streaming

Preise, kompatible Geräte, Datenrate, Serien- und Filmangebot von Netflix: Wir beantworten die wichtigsten Fragen rund um den Streaming-Dienst.
E.T. – Der Außerirdische
Vorschau auf Film- und Serien-Highlights

Amazon Prime Instant Video lockt im Dezember 2016 mit Film-Highlights wie "E.T.", "Fast & Furious 7" und der Serie "Ku’damm 56​".