Pregunta

Comienzo con ZF (1.9.7), y quiero utilizar los ayudantes de vista de una biblioteca compartida entre todos mis proyectos. Pero no puedo encontrar la manera de agregarlo directorio a la ruta ayudantes. Mis obras Herpers multas cuando me los puse en camino ayudantes de aplicación.

Aquí está el error, donde encuentro el camino a ayudantes ZF, y la ruta de las aplicaciones.

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)

Saludos
Cédric

¿Fue útil?

Solución

Se puede hacer muy fácilmente con el construido en Zend_Application recurso para la vista. Si está utilizando configuraciones ini, añadir una línea como la siguiente:

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

El final de la clave es el prefijo de nombre de la clase, y el valor de la ruta en la que residen.

Otros consejos

caminos auxiliares se añaden a través de Zend_View_Abstract :: addHelperPath () . Puede llamar a este método directamente en una instancia vista existente.

caminos

Helper también se pueden configurar de varias maneras durante la rutina de carga. Mira el capítulo del manual ZF en Zend_Application para ver cómo utilizar las clases y recursos de rutina de carga:

Hay un problema cuando se utiliza

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

Me puede acceder a ningún ayudante de vista en el diseño incluso ayudantes locales en el módulo. (Plugin por su nombre no se encontró '' LoggedInAs en el registro) pero sigue trabajando en los archivos de vistas de plantilla.

Me puso este código "eco Zend_Debug :: dump ($ this)" al final del archivo de diseño y hay una parte de la producción.

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

pero cuando el uso de estos códigos en el archivo de arranque no hay ningún problema.

    //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 salida era como a continuación:

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

EDITAR: Salida ayudante en Zend Framework para una más detallado opinión sobre esta cuestión utilizando de rob allen Loggedinas ayudante de vista.

No sólo se puede hacer como se especifica por David Caunt, pero también puede hacerlo de esta manera en su arranque. Nota siempre hay más de una manera de hacer cualquier cosa en Zend Framework

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

Si usted tiene acceso al objeto vista, haga lo siguiente.

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

puede que tenga que obtener el objeto de vista si en un frontal del controlador Plugin

También puedes ver esto en realidad gran conjunto de mensajes de comenzar aquí:

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

He escrito sencillo tutorial corto para el registro de la vista Zend ayudantes de un directorio común, que se puede acceder a toda la aplicación. Por favor, echar un vistazo.

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top