Переопределение Zend_View_Helper не было обнаружено в Zend_Layout

TL; DR: в ZF1, после регистрации пользовательского префикса в application.ini, пространство имен Zend_View_Helper_ * имеет приоритет над моим собственным, несмотря на правильную работу в обычных представлениях.

  • Создано переопределение Zend_View_Helper_Url, называется App_View_Helper_Url,
  • Поместил файл в APPPLICATION_PATH/library/App/View/Helper/Url.php
  • Зарегистрировал пространство имен через application.ini: resources.view.helperPath.App_View_Helper = APPLICATION_PATH "/library/App/View/Helper"

Это работает. В моих представлениях теперь вызывается пользовательский помощник URL. Однако в представлениях шаблонов дополнительное пространство имен, похоже, не закрепляется. Я подтвердил это, запустив этот фрагмент: <?php var_dump(get_class($this->getHelper('url'))); ?>

  • index.phtml: App_View_Helper_Url
  • layout.phtml: Zend_View_Helper_Url

Я попытался решить эту проблему, явно установив представление Layout для загружаемого ресурса View — это не сработало.

$this->getResource('layout')->setView($this->getResource('view'));

В конце я исправил это, выполнив следующие действия в Bootstrap:

$view = $layout->getView();
$view->addHelperPath(APPLICATION_PATH . '/library/App/View/Helper', 'App_View_Helper');

Это решение не очень удовлетворительное, так как я сейчас определяю один и тот же вспомогательный путь дважды, что приводит к потенциальной поломке по линии. Поэтому, пока у меня есть обходной путь, я бы предпочел понять, как / где правильно настроить экземпляр Zend_View, используемый Zend_Layout, предпочтительно через application.ini.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]