Когда вызывается init () вашего помощника, init () ViewRenderer еще не было.Это из-за порядка в стеке помощников.
Если вы включите строгие стандарты отчетов об ошибках, вы должны увидеть что-то подобное в вашем помощнике "Создание объекта по умолчанию из пустого значения в ..."
Вы должны рассмотреть возможность перемещения вашего кода в ловушку preDispatch (), так как метод init () должен использоваться для инициализации helper .
Чтобы получить экземпляр представления для контроллера:
function getView()
{
$controller = $this->getActionController();
if($view = $controller->view) {
return $view;
}
if($this->getFrontController()->getParam('noViewRenderer') {
return $controller->initView();//this view instance will not be used in Zend_Layout!
}
$vr = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
return $vr->initView();
}
если вы хотите передать параметр в макет, используйте
$view = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->initView();