Я провел весь день, и я не могу заставить его работать.
У меня есть этот пользовательский класс помощника просмотра:
class ShowPopupMessages extends Zend_View_Helper_Abstract {
public function showPopupMessages()
{
$flashMessenger = Zend_Controller_Action_HelperBroker::getStaticHelper('FlashMessenger');
if($flashMessenger->hasMessages()) {
$msg =$flashMessenger->getMessages()[0];
return "ShowToastMessage('$msg','success')";
}}
}
Я прикрепляю изображение файловой структуры моего проекта
Я пытаюсь зарегистрировать этот класс в моем Bootstrap.php:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
protected function _initPlaceholders()
{
$this->bootstrap('view');
$view = $this->getResource('view');
$view->doctype('XHTML1_STRICT');$view->addHelperPath(
APPLICATION_PATH.'/views/helpers/', 'ShowPopupMessages'
);
$helper = new ShowPopupMessages();
$view->registerHelper($helper, 'showPopupMessages');
}
Это мое application.ini:
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"bootstrap.path = APPLICATION_PATH "/Bootstrap.php"bootstrap.class = "Bootstrap"appnamespace = "Application"resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"resources.frontController.params.displayExceptions = 0
resources.view.doctype = "XHTML1_STRICT"resources.view.helperPath = APPLICATION_PATH "/views/helpers"
но я продолжаю получать:
Неустранимая ошибка: класс ‘ShowPopupMessages’ не найден в
C: \ xampp \ htdocs \ Platforma \ application \ Bootstrap.php в строке 19
Имя класса неверно? Размещение в дереве?
Можно ли как-нибудь сделать автозагрузку (писать так много кода для регистрации каждого помощника — это безумие!)?
Если да, то где его поместить в дереве проекта?
Извините, но документы Zend написаны так хорошо, что я просто не могу учиться у них.
Спасибо и всего наилучшего!
Том
Пытаться:
В приложении .ini
resources.view.helperPath.My_View_Helper = APPLICATION_PATH "/views/helpers"
И имя класса: My_View_Helper_ShowPopupMessages
Следуя вашим подсказкам, я наконец-то понял:
Мая имя класса
class My_View_Helper_ShowPopupMessages extends Zend_View_Helper_Abstract
имя файла помощника:
ShowPopupMessages.php
и он помещается в \ views \ helpers
в bootstrap.php я добавил:
protected function _initViewHelperPaths()
{
$this->bootstrap('view');
$view = $this->getResource('view');
$view->addHelperPath(APPLICATION_PATH . '/views/helpers', 'My_View_Helper_');
}
и никакой явной регистрации каждого пользовательского помощника не требуется, так как:
$view->addHelperPath(APPLICATION_PATH . '/views/helpers', 'My_View_Helper_');
выполняет всю работу и не требует дополнительных действий с application.ini (по крайней мере, в моем простом приложении)
спасибо и всего наилучшего
Том