2010-10-08 1 views
5

Ich habe einen relativ komplizierten Teil meiner Anwendung, die ein Editor für Zugriffskontrolllisten ist. Ich muss es an einigen Stellen wiederverwenden, und ich möchte, dass es alle Ajax-y und so ladbar ist.Wohin lege ich View-Skripte, die von View-Helfern benötigt werden (mit Zend_View und dem Standard-Verzeichnis-Layout)?

Weil ich es oft verwenden muss, möchte ich es in einen Zend_View_Helper machen. Das ist einfach - setzen Sie einfach $view->setHelperPath(APPLICATION_PATH . '/views/helpers', 'Cas_View_Helper'); in den Bootstrap für die Ansicht, und alles scheint in Bezug auf das Laden des View-Helfers eingestellt zu sein.

Allerdings sollte der Helfer wirklich mit einem View-Skript ausgegeben werden. Gibt es einen Standardstandort, an den ich das tun sollte?

Antwort

8

In der Regel, wenn ein Helfer ein View-Skript benötigt, wird dieses Skript in einen Teil eingefügt. Die Lage dieses Teils kann in Abhängigkeit von der Verzeichnisstruktur variieren, aber der Standard ist:

application[/modules/name]/views/scripts/partials/ 

Sie können einen Helfer mit so etwas schreiben:

class Cas_View_Helper_Foo extends Zend_View_Helper_Abstract 
{ 
    protected $partial = 'partials/foo.phtml'; 
    protected $view = null; 

    // Render the partial here 
    public function foo($params) 
    { 
     $this->view->partial($this->partial, $params); 
    } 

    // Specifying this method Zend_View will inject the view here 
    public function setView(Zend_View_Interface $view) 
    { 
     $this->view = $view; 
    } 

} 
+0

+1 für die einzige Antwort, die bisher einen Pfad gegeben hat. –

0

Im Ordner Ansicht erstellen Sie einen Ordner Helper. Hier setzen Sie die View-Helfer.

+0

Ja, das habe ich gemacht. Aber der Helfer braucht ein View-Skript selbst –

1

Es gibt keinen Standard, Empfehlung oder alles in Stein gemeißelt, wie man das macht. ZF ist so flexibel wie es ist und überlässt Ihnen das, was für Ihre Anwendung am besten ist. Ich werde diese Antwort für einen Vergleich der aktuellen Lösungen verwenden.

Keyne Antwort ist die Lösung, die ich fühle die meisten Menschen schließlich kommen. Persönlich habe ich meinen eigenen Twist: application[/modules/name]/views/scripts/helpers/{your helper}/blah.phtml Das ermöglicht Ihnen, keine widersprüchlichen Teilnamen zu haben, und in der Lage, leicht zu Ihrer View-Helfer-Datei zu navigieren.

Obwohl diese Bälle immer noch für Modularität saugt, müssen View-Helfer an mindestens zwei Orten installiert werden. Alternativ ist eine andere Lösung, die ziemlich populär ist zu tun:

Das bietet ein bisschen bessere Modularität für Ihre Ansicht Helfer.

Verwandte Themen