Alles im Fluss

Teil 4: PHP-Frameworks Teil 9 - Flow 3

Damit die Framework-Daten auch in das Repository gelangen, benötigen Sie eine Repository-Klasse. Diese legen Sie im Verzeichnis Classes/Domain/Repository an. Datei und Klasse heißen FrameworkRepository, die Datei mit der Endung .php. Sie benötigen für dieses Beispiel keinen individuellen Code, sondern können von der Repository-Klasse von Flow3 erben:

<?php
declare(ENCODING =
'utf-8');
namespace F3\Frame
works\Domain\
Repository;
/**
* Ein Repository für unsere Frameworks
*/
class FrameworkRepository extends \
F3\Flow3\Persistence\Repository {
}
?>

Ausgabe

Damit ist die Model-Schicht abgeschlossen. Nun gilt es, das Modell zu befüllen und auszugeben. Dafür dient uns für den Anfang der StandardController aus dem Verzeichnis Classes/Controller unseres Frameworks-Pakets. Hier müssen Sie das FrameworkRepository einfügen:

/**
* @var F3\Frameworks\Domain\
Repository\FrameworkRepository
* @inject
*/
protected $frameworkRepository;

Dieser Einfügevorgang heißt Code Injection. Sie erkennen das am Schlüsselwort inject. Das heißt, dass der benötigte Code woanders definiert und dann an der gewünschten Stelle verwendet wird. Die zentrale Verwaltung übernimmt das Framework. Zum Testen benötigen Sie ein einzelnes Element für unsere Liste.

PHP - Frameworks - Flow 3

© Archiv

Ausgabe: Eine einfache Liste mit Frameworks lässt sich schnell erstellen.

Das erzeugen Sie in der createAction. Das Objekt wird als Framework- Model-Objekt angelegt, mit Identifier, Namen und Lizenz befüllt und dann zum Repository hinzugefügt:

/**
* Element erstellen
*
* @return void
*/
public function createAction() {
$framework = $this->objectFactory->
create('F3\Frameworks\Domain\Model\
Framework');
$framework->setIdentifier('1');
$framework->setName('Flow3');
$framework->setLicence('GPL');
$this->frameworkRepository->
add($framework);
$this->redirect('index');
}

Am Schluss leitet die create-Action auf die index-Action weiter. Diese wiederum sorgt für die Ausgabe. Im vorliegenden Fall geschieht das in der einfachsten Form direkt, also ohne View. Hier kommt also auch kein Fluid-Template zum Einsatz.

Der Zugriff auf das Repository selbst erfolgt mit der Methode findAll(). Diese und andere Methoden der Repository-Klasse finden Sie in der Flow3-Referenz. Anschließend können Sie mit einer einfachen Schleife alle zurückgelieferten Frameworks durchgehen und entsprechend das Ergebnis in einer Tabelle ausgeben:

/**
* Index action
*
* @return string
*/
public function indexAction() {
$frameworks = $this->
frameworkRepository->findAll();
$ausgabe = '<table border="1"
cellpadding="5">';
$ausgabe .= '<tr><th>ID</th><th>
Framework</th><th>Lizenz</th></tr>';
foreach ($frameworks as $framework) {
$ausgabe .= '<tr>';
$ausgabe .= '<td>' . $framework->
getIdentifier() . '</td>';
$ausgabe .= '<td>' . $framework->
getName() . '</td>';
$ausgabe .= '<td>' . $framework->
getLicence() . '</td>';
$ausgabe .= '</tr>';
}
$ausgabe .= '</table>';
return $ausgabe;
}

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…
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…
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…