zend udemy mac how framework curso composer php zend-framework view-helpers

php - udemy - Cómo agregar un directorio de ayuda de visualización(zend framework)



zend framework 2018 (5)

Se puede hacer muy fácilmente con el recurso Zend_Application integrado para la vista. Si está utilizando ini configs, agregue una línea como esta:

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

El final de la clave es el prefijo de nombre de clase y el valor de la ruta donde residen.

Comienzo con ZF (1.9.7) y quiero usar View Helpers de una biblioteca compartida entre todos mis proyectos. Pero no puedo encontrar cómo agregarlo a la ruta de los ayudantes. Mis herpers trabajan multas cuando los pongo en el camino de los ayudantes de la aplicación.

Aquí está el error, donde encuentro el camino a los ayudantes de ZF, y el camino a los de 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)

Atentamente
Cédric



Hay un problema al usar

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

Puedo acceder sin ayuda de vista en el diseño incluso a los ayudantes locales en el módulo. (No se encontró el complemento por nombre ''LoggedInAs'' en el registro) pero aún funciona en archivos de plantilla de vistas.

Puse este código "echo Zend_Debug :: dump ($ this)" al final del archivo de diseño y hay una parte de salida.

["_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 al usar estos códigos en el archivo bootstrap no hay 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'');

el resultado fue 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/" } }


Las rutas de ayuda se agregan a través de Zend_View_Abstract :: addHelperPath () . Puede invocar este método directamente en una instancia de Vista existente.

Las rutas de ayuda también se pueden configurar de varias maneras durante el arranque. Consulte el capítulo del manual de ZF en Zend_Application para ver cómo usar clases y recursos de Bootstrap:


EDITAR: Echa un vistazo a ver ayudante en zend framework para obtener una visión más detallada de este problema usando el asistente de visualización Loggedinas de rob allen.

No solo puedes hacer lo que especifica David Caunt, sino que también puedes hacerlo así en tu rutina de arranque. Tenga en cuenta que siempre hay más de una forma de hacer algo en Zend Framework

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

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

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

es posible que necesite obtener el objeto de vista si tiene un plugin de controlador frontal

También echa un vistazo a este gran conjunto de publicaciones que comienzan aquí:

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