Как вызвать Action Helper как метод-посредник в View Helper?

#zend-framework #view-helpers

#zend-framework #view-помощники

Вопрос:

У меня есть Action Helper, который является уровнем абстракции базы данных.

Я хотел бы получить к нему доступ в View Helper, чтобы прочитать и представить некоторые данные из модели.

В контроллере я вызываю Action Helper как метод брокера, но как добиться того же в View Helper?

Где-то в контроллере:

 $this->_helper->Service("Custom\PageService");
  

Service.php:

 ...
public function direct($serviceClass)
{
    return new $serviceClass($this->em);
}
  

Ответ №1:

Более приятным способом будет создать view helper внутри него

   Zend_Controller_Action_HelperBroker::getStaticHelper('service')->direct("Custom\PageService");
  

другой способ — внутри метода инициализации контроллера выполнить

 $this->view->helper = $this->_helper;
  

итак, в view (phtml) вы можете сделать

 $this->helper->Service("Custom\PageService");
  

Комментарии:

1. Остается вопрос, какое решение было бы лучшим. Я думаю, что первое, потому что тогда вы не зависите от Controller . Что вы думаете?