Класс помощника не может быть найден автозагрузчиком в моем приложении Zend Framework - PullRequest
1 голос
/ 03 апреля 2012

У меня проблема в том, что в моем приложении ZF помощник действий не может быть загружен. Сообщение об ошибке:

Action Helper по имени Sunshine не найден

В макете моего приложения ZF используются модули, в которых у меня есть следующая структура:

application
   modules
      weather
          controllers
             helpers

Я зарегистрировал помощника в модуле Bootstrap, который находится в

application -> modules -> weather -> Bootstrap.php

Вот код

<?php
class Weather_Bootstrap extends Zend_Application_Module_Bootstrap
{

    protected function _initActionHelperBrokers()
    {
        Zend_Controller_Action_HelperBroker::addPath('controllers/helpers', 'Weather_Controllers_Action_Helper_');
    }
}


<?php
class Weather_Controller_Action_Helper_Sunshine extends Zend_Controller_Action_Helper_Abstract 
{

    public function getSunrise() 
    {
        return "06:00";
    }

}

<?php
class Weather_ForecastsController extends Zend_Controller_Action
{

    protected function getForecasts($date) 
    {
        $sunrise = $this->_helper->Sunshine->getSunrise();
        // tbc
    }

Что это, что я здесь не так делаю?

РЕДАКТИРОВАТЬ: Как предложено, я попытался добавить помощник в начальной загрузке с полным путем, но я получил ту же ошибку.

1 Ответ

0 голосов
/ 03 апреля 2012

метод addPath ожидает полный путь к вспомогательному каталогу. Измените его на что-то вроде:

Zend_Controller_Action_HelperBroker::addPath(APPLICATION_PATH . '/modules/weather/controllers/helpers', 'Weather_Controllers_Action_Helper_');

Кроме того, вы также можете добавить пути через ваш application.ini:

resources.frontController.actionhelperpaths.Weather_Controllers_Action_Helper = APPLICATION_PATH "/modules/weather/controllers/helpers"
...