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

Teil 5: PHP-Frameworks Teil 9 - Flow 3

Autoren: Redaktion pcmagazin und Tobias Hauser • 11.3.2010 • ca. 2:05 Min

Zum Testen rufen Sie die create-Action direkt auf. Die Adresse sieht in unserem Fall so aus: localhost/Flow3/Web/frameworks/standard/create. Nun wird die Tabelle mit unserem einen Eintrag angezeigt. Weitere Elemente können Sie in dieser Action hinzufügen. Mit einem einfachen Eingabeformular mach...

Zum Testen rufen Sie die create-Action direkt auf. Die Adresse sieht in unserem Fall so aus: localhost/Flow3/Web/frameworks/standard/create. Nun wird die Tabelle mit unserem einen Eintrag angezeigt. Weitere Elemente können Sie in dieser Action hinzufügen.

Mit einem einfachen Eingabeformular machen Sie die Tabelle auch pflegbar (siehe Blog-Beispiel von Flow3). Um alle Einträge zu löschen, verwenden Sie die Methode removeAll() der Repository-Klasse.

Fluid

An dieser Stelle sollten Sie Controller und Ausgabe entkoppeln. Für das Templating ist die Template-Engine Fluid zuständig. In Fluid gibt es einzelne Bestandteile für ein Template. Das Layout ist der Rahmen, ein Template ist dagegen für eine einzelne Action zuständig und Partials formatieren einzelne Bereiche.

In unserem Fall kommt nur ein Template zum Einsatz. Sie finden es in dem Paket-Verzeichnis unter Resources\Private\Templates\Standard. Es trägt den Namen index.html. Im Template setzen Sie die Fluid-Platzhaltersprache ein und ersetzen den <body>-Bereich. Fluid-Tags folgen immer dem gleichen Muster: <f:Befehl>. Hier benötigen Sie eine for-Schleife.

Als Platzhalter für Variablen kommen geschweifte Klammern zum Einsatz:

<h1>Frameworks</h1><table border="1" cellpadding="5"><tr><th>ID</th><th>Framework</th><th>Lizenz</th></tr><f:for each="{frameworks}" as=
"framework"><tr><td>{framework.identifier}</td><td>{framework.name}</td><td>{framework.licence}</td></tr></f:for></table>

Nun muss nur noch der Inhalt, sprich die Frameworks, in das Template gelangen. Dazu wird die index-Action deutlich abgespeckt. Hier ist - entwicklungstechnisch sauber - nur noch der Aufruf des Repositorys enthalten. Das Ergebnis wird direkt der View übergeben.

PHP - Frameworks - Flow 3
Ausgabe II: Mit Template haben Sie Ausgabe noch besser im Griff.
© Archiv

In der Methode assign(Variable, Wert) kommt zuerst der Name der Fluid-Variablen, dann der Wert. Im vorliegenden Fall sind das die Frameworks aus dem Repository:

/**
* Index action
*
* @return void
*/
public function indexAction() {
$frameworks = $this->
frameworkRepository->findAll();
$this->view->assign('frameworks',
$frameworks);
}

Herausforderer

Flow3 steckt noch in den Kinderschuhen. Aber der moderne Ansatz und später auch die einfache Verbindung mit CMS-Fähigkeiten machen Flow3 zu einer überlegenswerten Alternative.

Wer den Ansatz heute schon mit Typo3 verbinden möchte, hat die Erweiterung extbase und das Templatesystem Fluid zur Verfügung. Beide sind in Typo3 4.3 direkt im Standardumfang dabei und müssen nur noch installiert werden.

Aber auch über Typo3-Grenzen hinaus kann sich Flow3 zu einem ernstzunehmenden Herausforder für etablierte Frameworks entwickeln. Kaum eines der Frameworks geht den Weg moderner Softwareparadigmen so konsequent und entlehnt auch viele Prinzipien aus der Java-Welt.

Wenn dann noch Funktionsumfang und Softwarereife in naher Zukunft stimmen, steht einer positiven Entwicklung von Flow3 nichts mehr im Wege.