Um Layout- & Viewscripte zu entschlacken und von Programmcode zu befreien (MVC-Prinzip), gibt es in Zend die Möglichkeit View-Helper einzusetzen. View Helper können auch dazu verwendet werden, um wiederkehrenden Code in seperaten Dateien abzulegen und somit doppelten Code zu vermeiden.
Ich erkläre das Prinzip beispielhaft für das Einbinden eines Copyrights incl. Jahreszahl (bspw.: © 2005 – 2011).
Wir legen uns im Ordner application den Ordner Helper mit dem Unterordner View an. In diesem View-Ordner erzeugen wir die Datei Copyright.php und fügen darin die Programmfunktionalität für das Ausgeben des Copyrights ein:
class Helper_View_Copyright extends Zend_View_Helper_Abstract { public function copyright($year) { if(date('Y') > $year) return '© '.$year. ' – ' . date('Y'); else return $year; } }
Damit der Helper nun korrekt initialisiert wird, sind zwei Anpassungen nötig. Fügt in eure application.ini folgende Zeile zum Initialisieren des Namespaces für die View-Helper ein:
autoloadernamespaces.1 = "Helper_"
Damit die aktuelle und auch später hinzugefügte Helper-Dateien/Klassen direkt gefunden werden, ist noch eine Anpassung der Bootstrap.php des Projektes nötig. Fügt dazu unter die _initAuth()-Funktion die _initHelper-Funktion hinzu:
protected function _initHelper() { //Holen der View Resource aus der Bootstrap $this->bootstrap('view'); //Setzen der View-Resource $view = $this->getResource('view'); //Setzen des HelperPath im Viewobjekt $view->addHelperPath(APPLICATION_PATH.'/Helper/View/','Helper_View'); }
Die Ausgabe des Copyrights in unserem Layoutscript ist der letzte Schritt dieses Tutorials. Fügt dazu unter eurem Content-Div einfach folgenden Quellcode ein:
<div ><?php echo $this->copyright(2005); ?></div>
Damit erfolgt die Ausgabe des Copyrights folgendermaßen: © 2005 – 2011