Изменить имя модуля в Zend Framework

ZF 1.9.6. Попытка изменить модуль на основе пользовательского агента запроса. Когда я пытаюсь получить объект запроса с Front, я получаю NULL.

В настоящее время я пытаюсь установить имя модуля из метода Bootstrap _initModule, который я создал.

$front = Zend_Controller_Front::getInstance(); $request = $front->getRequest(); // This is NULL $request = new Zend_Controller_Request_Http(); $request->setModuleName('iphone'); $front->setRequest($request); 

Однако, когда он выполняется, он все равно переходит в модуль по умолчанию.

Я не думаю, что Bootstrap – это подходящее место, потому что это происходит до начала любой маршрутизации запроса.

Я бы предложил использовать плагин переднего контроллера preDispatch для этого:

 class Your_Application_Plugin_ModuleSelector extends Zend_Controller_Plugin_Abstract { public function preDispatch(Zend_Controller_Request_Abstract $request) { ... $request->setModuleName('iphone'); } ... } 

С:

 resources.frontController.plugins.moduleselector = "Your_Application_Plugin_ModuleSelector" 

в вас application.ini