Получить имя контроллера в Bootstrap - PullRequest
2 голосов
/ 10 января 2012

Я хочу загрузить дополнительный файл конфигурации на основе имени контроллера в моем файле начальной загрузки, поэтому мне нужно получить имя контроллера в начальной загрузке (в Zend Framework 1.1). Возможно ли это?

Я пробовал:

$front = Zend_Controller_Front::getInstance();
$controller = $front->getRequest()->getControllerName();

Но это не работает:

Fatal error: Call to a member function getControllerName() on a non-object in [path]\application\Bootstrap.php on line 10

Ответы [ 3 ]

4 голосов
/ 10 января 2012

Вы должны сначала загрузить фронт-контроллер, чтобы иметь возможность его использовать.

$bootstrap->bootstrap('frontController');
$front = $bootstrap->frontController;
$controller = $front->getRequest()->getControllerName();
4 голосов
/ 24 апреля 2015

Вы можете сделать это так же:

        $router = new Zend_Controller_Router_Rewrite();
        $request = new Zend_Controller_Request_Http();
        $router->route($request);
        $request->getActionName();
4 голосов
/ 10 января 2012

Вам необходимо сначала инициализировать объект запроса, загрузив фронт-контроллер

Пример использования в классе Bootstrap:

$this->bootstrap('frontController');
$request = $this->getResource('frontController')->getRequest();
$controller = $request->getControllerName();

Не следует использовать объект запроса в файле начальной загрузки через.

Лучшим решением было бы использовать плагин фронт-контроллера и его pre-/postDispatch() методы для достижения этой цели.

Если у вас есть более сложная логика или вам нужны дополнительные методы удобства для каждогоконтроллер вы можете расширить класс Zend_Controller_Action.

...