Frage

Ich beginne mit ZF (1.9.7), und ich möchte View Helfer aus einer Bibliothek zwischen allen meinen Projekten geteilt verwenden. Aber ich kann nicht finden, wie es Verzeichnis des Helfer Pfad hinzuzufügen. Meine Terrarianer arbeitet Bußgelder, wenn ich sie Helfer in der Anwendung den Weg stellen.

Hier ist der Fehler, wo ich den Weg zu ZF Helfern finden, und mit dem Weg zu den Anwendungen diejenigen.

object(ArrayObject)#71 (3) {
  ["exception"]=>
  object(Zend_Loader_PluginLoader_Exception)#70 (6) {
    ["message:protected"]=>
    string(151) "Plugin by name 'Voo' was not found in the registry; used paths:
Zend_View_Helper_: Zend/View/Helper/;C:/ZendStd/www/applis/VOO4_PROJECTX/views\helpers/"
    ["string:private"]=>
    string(0) ""
    ["code:protected"]=>
    int(0)
    ["file:protected"]=>
    string(89) "C:\Program Files\Zend\ZendServer\share\ZendFramework\library\Zend\Loader\PluginLoader.php"
    ["line:protected"]=>
    int(401)

Mit freundlichen Grüßen
Cédric

War es hilfreich?

Lösung

Es kann sehr leicht für die Ansicht mit der eingebauten in Zend_Application Ressource durchgeführt werden. Wenn Sie ini configs verwenden, fügen Sie eine Zeile wie folgt aus:

resources.view.helperPath.My_View_Helper = "My/View/Helper"

Das Ende des Schlüssels ist der Klassenname Präfix und der Wert der Pfad, in dem sie sich befinden.

Andere Tipps

Helper Pfade hinzugefügt werden durch Zend_View_Abstract :: addHelperPath () . Sie können diese Methode aufrufen, direkt auf einer vorhandenen View-Instanz.

Helper Pfade können auch auf verschiedene Weise während Bootstrap konfiguriert werden. Schauen Sie sich die ZF Handbuch Kapitel Zend_Application zu sehen, wie Bootstrap-Klassen und Ressourcen nutzen:

Es gibt ein Problem bei der Verwendung von

resources.view.helperPath.App_View_Helper = APPLICATION_PATH "/../library/App/views/helpers"

kann ich keine View Helfer im Layout zugreifen, auch lokale Helfer im Modul. (Plugin nach Namen ‚LoggedInAs‘ wurde nicht in der Registrierung nicht gefunden), aber immer noch Arbeit in Ansichten Vorlagendateien.

Ich habe diesen Code "echo Zend_Debug :: dump ($ this)" am Ende der Layout-Datei und es ist ein Teil der Ausgabe.

        ["_prefixToPaths:protected"] => array(3) {
          ["Zend_View_Helper_"] => array(2) {
            [0] => string(17) "Zend/View/Helper/"
            [1] => string(16) "./views\helpers/"
          }
          ["ZendX_JQuery_View_Helper_"] => array(1) {
            [0] => string(25) "ZendX/JQuery/View/Helper/"
          }
          ["Zend_View_Helper_Navigation_"] => array(1) {
            [0] => string(28) "Zend/View/Helper/Navigation/"
          }
        }

Wenn aber diesen Code in der Bootstrap-Datei gibt es kein Problem.

    //Initialize and/or retrieve a ViewRenderer object on demand via the helper broker
    $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
    $viewRenderer->initView();
    //add the global helper directory path
    $viewRenderer->view->addHelperPath(APPLICATION_PATH.'/../library/App/views/helpers', 'App_View_Helper');

war die Ausgabe wie folgt:

            ["_prefixToPaths:protected"] => array(4) {
              ["Zend_View_Helper_"] => array(3) {
                [0] => string(17) "Zend/View/Helper/"
                [1] => string(16) "./views\helpers/"
                [2] => string(86) "D:/zf/application/modules/default/views\helpers/"
              }
              ["App_View_Helper_"] => array(1) {
                [0] => string(85) "D:\zf\application/../library/App/views/helpers/"
              }
              ["ZendX_JQuery_View_Helper_"] => array(1) {
                [0] => string(25) "ZendX/JQuery/View/Helper/"
              }
              ["Zend_View_Helper_Navigation_"] => array(1) {
                [0] => string(28) "Zend/View/Helper/Navigation/"
              }
            }

EDIT: View Helfers in Zend Framework für einen Check out mit rob Allens Loggedinas view Helfer mehr nehmen zu diesem Thema ausführlich beschrieben.

Sie können nicht nur Sie, wie David Caunt angegeben, aber Sie können es auch tun, wie diese in der Bootstrap. Hinweis gibt es immer mehr als einen Weg, um etwas in Zend Framework zu tun

Schauen Sie sich http://devzone.zend.com/article/3412

Wenn Sie den Zugriff auf das Ansichtsobjekt haben, gehen Sie wie folgt vor.

<?php    
$view->addHelperPath('My/View/Helper/', 'My_View_Helper'); 
?>

Sie müssen möglicherweise das an, wenn Sie in einer Front Controller Plugin

erhalten

Überprüfen Sie auch diese wirklich große Menge von Stellen ausgehend hier:

http : //zend-framework-community.634137.n4.nabble.com/Getting-view-from-Bootstrap-ZF1-8-tp659447p659460.html

Ich habe für die Registrierung der zend View Helfer aus einem gemeinsamen Verzeichnis kurze, einfache Anleitung geschrieben, die in der gesamten Anwendung zugegriffen werden können. Bitte überprüfen.

http://www.mixedwaves.com/2010/03/accessing-and-using-zend-view-helpers-from-a-common-directory/

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top