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