Ваши помощники по видам реализуют метод setView()
, напрямую или, возможно, как подклассы Zend_View_Helper_Abstract
?
Если вы посмотрите на код метода Zend_View_Abstract::registerHelper($helper, $name)
, вы увидите, что он проверяет наличие метода setView()
на помощнике.Если он находит такой метод, он вызывает $helper->setView($this)
, где $this
- это $view
.
Здесь происходит соединение.В отсутствие этого вызова кажется, что хотя представление будет знать о помощнике (в конце концов, вы только что зарегистрировали его), помощник не будет знать о представлении.Если помощник пытается получить доступ к представлению, он заканчивает тем, что создает новый объект представления, который не был настроен вами в Bootstrap.
tl; dr: Вероятно, нетнужно явно зарегистрировать помощников.С установленным по умолчанию автозагрузчиком ресурсов и соглашением об именах классов / методов, которое вы, похоже, используете, вы, вероятно, можете позволить встроенному загрузчику плагинов обрабатывать все экземпляры.Просто вызовите $this->myHelperMethod()
в ваших макетах или скриптах вида, и все должно быть круто.