Question

Je commence par ZF (1.9.7), et je veux utiliser View Helpers à partir d'une bibliothèque partagée entre tous mes projets. Mais je ne peux pas trouver comment l'ajouter répertoire au chemin des aides. Mon Herpers fonctionne amendes quand je les ai mis dans le chemin d'aides de l'application.

Voici l'erreur, où je trouve le chemin d'aides ZF, et le chemin vers les applications.

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)

Cordialement
Cédric

Était-ce utile?

La solution

Il peut être fait très facilement avec le construit en ressources Zend_Application pour la vue. Si vous utilisez configs ini, ajoutez une ligne comme ceci:

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

La fin de la clé est le préfixe du nom de classe, et la valeur du chemin où ils résident.

Autres conseils

chemins d'aide sont ajoutés par Zend_View_Abstract :: addHelperPath () . Vous pouvez appeler cette méthode directement sur une instance de vue existante.

chemins d'aide peuvent également être configurés de diverses manières au cours d'amorçage. Consultez le chapitre du manuel ZF sur Zend_Application pour voir comment utiliser les classes Bootstrap et ressources:

Il y a un problème lors de l'utilisation

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

Je ne peux accéder à aucune aide de vue dans la mise en page même des aides locales dans le module. (Plugin par nom « LoggedInAs » n'a pas été trouvé dans le registre), mais travaille toujours dans les vues des fichiers de modèle.

Je mets ce code "echo Zend_Debug :: dump ($ this)" à la fin du fichier de mise en page et il y a une partie de la production.

        ["_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/"
          }
        }

mais lorsque vous utilisez ces codes dans le fichier de démarrage il n'y a pas de problème.

    //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');

la sortie était comme ci-dessous:

            ["_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: Consultez le aide de vue pour une plus détaillé prendre sur cette question à l'aide Loggedinas l'aide de vue rob allen.

Non seulement pouvez-vous faire comme spécifié par David Caunt, mais vous pouvez aussi le faire comme ceci dans votre bootstrap. Notez qu'il ya toujours plus d'une façon de faire quoi que ce soit dans le Zend Framework

Consultez http://devzone.zend.com/article/3412

Si vous avez accès à l'objet de la vue, procédez comme suit.

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

vous devrez peut-être obtenir l'objet de vue si vous dans un plugin de contrôleur frontal

Consultez également cet ensemble de messages vraiment super à partir d'ici:

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

Je l'ai écrit à court tutoriel simple pour enregistrer les aides de vue zend à partir d'un répertoire commun, accessible dans toute l'application. S'il vous plaît consulter.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top