ZEND: невозможно зарегистрировать помощник вида

Я провел весь день, и я не могу заставить его работать.

У меня есть этот пользовательский класс помощника просмотра:

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 написаны так хорошо, что я просто не могу учиться у них.

Спасибо и всего наилучшего!

Том

0

Решение

Пытаться:

В приложении .ini

resources.view.helperPath.My_View_Helper = APPLICATION_PATH "/views/helpers"

И имя класса: My_View_Helper_ShowPopupMessages

0

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

Следуя вашим подсказкам, я наконец-то понял:

Мая имя класса

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 (по крайней мере, в моем простом приложении)

спасибо и всего наилучшего

Том

0

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