Innerhalb eines View-Helper einen anderen Helper nutzen
Samstag, 13. Dezember 2008
Da ich immer mal wieder mitbekomme das einige nicht wissen wie man innerhalb eines View Helpers einen anderen Helper aufrufen bzw. nutzen kann gebe ich hier ein kurzes Beispiel.
Wichtig ist das man die eigene Klasse von Zend_View_Helper_Abstract ableitet. Das ist wichtig da die Basisklasse die Eigenschaft "view" bereitstellt und die Methode setView(). Die Methode ist wichtig da diese via "Setter-Injection" befüllt wird. Das heisst das die Funktion automatisch die View innerhalb der Methode "_getPlugin" in der Zend_View Klasse übergeben bekommt. Man muss sich also nicht mehr um das übergeben der View kümmern. Einfacher geht's eigentlich nicht.
Wie komme ich jetzt aber zu meinem anderen View Helper? Das ist jetzt ganz einfach. View Helper können direkt über ein View Objekt aufgerufen werden da intern via __call() der entsprechende Helper aufgerufen wird.
Beispiel für einen Helper:
require_once 'Zend/View/Helper/Abstract.php'
class MyModule_View_Helper_MyHelper extends Zend_View_Helper_Abstract
{
public function myHelper()
{
return $this->view->partial('myfile.phtml', array('foo' => 'bar'));
}
}
Was passiert hier? Die View ist bereits übergeben und kann so intern benutzt werden. Das Property \"view\" hält das Objekt. Der Partial Helper wird direkt über das View Objekt instanziert. Intern benutzt die Zend_View den PluginLoader und läd bei bedarf den entsprechenden Helper. Das kann uns aber egal sein. Wir brauchen nur die richtige Basis-Klasse ableiten
Permalink: http://blog.muench-worms.de/permalink/article/73
Kommentare
Kommentar abgeben<< Zurück zur Liste
Kategorien :
Links
-
RT @inmon: INMON CMS Version 1.3.2 veröffentlicht. Neu: Statischer Seitencache mit ca. 300% Performance-Gewinn! http://bit.ly/ax3iJ0
-
Ich glaube die haben es verbockt. Ein bischen mehr Ehrlichkeit und es hätte etwas werden können mit dem WePad. http://bit.ly/ba0cky #wepad
-
@mattsches Endstand sogar 7:0. Die Bayern haben einen echten Lauf.


