Как добавить вспомогательный каталог представления (zend framework)

Я начинаю с ZF (1.9.7), и я хочу использовать View Helpers из библиотеки, разделяемой между всеми моими проектами. Но я не могу найти, как добавить его в каталог помощников. Мои травы работают штрафы, когда я помещаю их в путь помощников приложения.

Вот ошибка, где я нахожу путь к помощникам ZF и путь к приложениям.

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) 

С наилучшими пожеланиями
Седрик

Это можно сделать очень легко с помощью встроенного ресурса Zend_Application для представления. Если вы используете ini configs, добавьте следующую строку:

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

Конец ключа – это префикс имени класса, а значение – путь, по которому они находятся.

Пути помощников добавляются через Zend_View_Abstract :: addHelperPath () . Вы можете вызвать этот метод непосредственно в существующем экземпляре View.

Вспомогательные пути также могут быть сконфигурированы различными способами во время загрузки. Ознакомьтесь с главой руководства ZF по Zend_Application чтобы узнать, как использовать классы и ресурсы Bootstrap:

При использовании

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

Я могу получить доступ к помощнику вида в макете даже локальных помощников в модуле. (Плагин по имени «LoggedInAs» не найден в реестре), но все еще работает в файлах шаблонов просмотров.

Я поместил этот код «echo Zend_Debug :: dump ($ this)» в конец файла макета, и есть часть вывода.

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

но при использовании этого кода в файле начальной загрузки проблем нет.

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

результат был следующим:

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

РЕДАКТИРОВАТЬ: ознакомьтесь с помощником вида в zend framework для более детального рассмотрения этой проблемы с помощью помощника просмотра журнала allen's Loggedinas.

Вы не только можете сделать так, как указано Дэвидом Каунтом, но вы также можете сделать это в своем бутстрапе. Обратите внимание, что всегда есть несколько способов сделать что-либо в Zend Framework

Ознакомьтесь с http://devzone.zend.com/article/3412

Если у вас есть доступ к объекту вида, выполните следующие действия.

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

вам может понадобиться получить объект вида, если вы используете плагин переднего контроллера

Также ознакомьтесь с этим замечательным набором сообщений, начинающихся здесь:

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

Я написал короткий простой учебник для регистрации помощников вида zend из общего каталога, к которому можно получить доступ во всем приложении. Пожалуйста, смотрите.

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