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.

© 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 lesen

Chronologische Liste und Netflix-Links -

Neuerscheinungen in der Übersicht -

Vorschau auf Film- und Serien-Highlights -

Mehr zum Thema

Webdesign

Adobe Illustrator wird im Webdesign immer beliebter. Wie Sie das Tool richtig einsetzen, erfahren Sie hier.
Facebook

Was sind die Implikationen für Unternehmen und Endanwender bei Facebooks neuer Suche Graph Search?
Online-Recht

Allgemeine Geschäftsbedingungen liest sich niemand gerne durch. Sie sind jedoch notwendig und äußerst sinnvoll. Worauf sie achten sollten.
Online-Recht in der Cloud

Dateien werden immer häufiger in der Cloud bereitgestellt. Rechtlich ist das jedoch durchaus problematisch. Wir klären über das Urheberrecht in der…
E-Commerce-Logistik

Für den Erfolg eines Online-Shops sind zahlreiche Faktoren verantwortlich. Neben Produktvielfalt und Darstellung der Waren gehört auch die Logistik.