PHP-Enzyklopädie

Teil 4: Serie: PHP-Frameworks Teil 7 - eZ Components

Im einfachen Beispiel reicht es, den Aufruf des www-Verzeichnisses mit dem Standard-Controller frameworksController zu verbinden. Dort soll eine Methode list aufgerufen werden, die eine Liste mit Frameworks aus der Datenbank aufruft:

class frameworksRouter extends
ezcMvcRouter {
public function createRoutes() {
return array(
new ezcMvcRailsRoute('/', 'frame
worksController', 'list'),
);
}
}

Controller, View, Template

Das Herzstück ist der Controller. Er landet in der Datei lib/controllers/ frameworks.php. Für den Start fällt die Datenabfrage weg. Die Daten kommen aus einem einfachen Array. Die Methode in frameworksController heißt doList(). Sie erinnern sich an das Routing: Dort wurde list aufgerufen. Mit dem Zusatz do und großem Anfangsbuchstaben gelingt hier das automatische Matching:

class frameworksController extends
ezcMvcController {
private $frameworks = array('eZ
Components', 'Akelos', 'Zend Framework');
public function doList() {
$ret = new ezcMvcResult;
$ret->variables['frameworks'] =
$this->frameworks;
return $ret;
}
}

Die Methode doList() liefert ein ezcMvc Result-Objekt zurück. Dieses Objekt erhält eine Variable frameworks. Sie wiederum wird von den Mvc Tools an die View übergeben. Und die ist nun als Nächstes dran. Sie landet in views/root.php. Der Name ist hier - gemäß autoload.php - frei wählbar. Die View ist eine Klasse, die in der Methode createZones() die Einzelteile des Layouts in einem Array zusammenfügt:

class frameworksRootView extends
ezcMvcView {
function createZones($layout) {
$zones = array();
$zones[] = new ezcMvcTemplateView
Handler('menu', 'menu.ezt');
$zones[] = new ezcMvcPhpViewHandler(
'content', '../templates/frameworks_list.php');
$zones[] = new ezcMvcTemplateView
Handler('page_layout', 'layout.ezt');
return $zones;
}
}

Im vorliegenden Beispiel gibt es drei Zonen: das eigentliche Seitenlayout und ein Menü, beide als vorkompilierbare .ezt-Template-Dateien und ein von PHP behandelter Bestandteil im templates-Verzeichnis.

Die Template-Dateien sind sehr einfach aus HTML-Code aufgebaut und enthalten jeweils Platzhalter in einer einfachen Template-Sprache. Das Haupttemplate in templates/layout.ezt enthält die anderen beiden Bestandteile:

{use $menu, $content}<html><head><title>Liste mit Frameworks</title></head><body>
{raw $menu}<br/>
{raw $content}</body></html>

Das Menü wird testweise mit einem Link auf das Wurzelverzeichnis versehen:

{use $installRoot}<div id="menu"><a href="{$installRoot}/">Home</a></div>

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