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

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​".