Zend Framework: получение объекта запроса в начальной загрузке
Как получить объект запроса из файла начальной загрузки?
Я могу попробовать эти методы, но не работать.
$request= new Zend_Controller_Request_Http();
$request = Zend_Controller_FrontController::getInstance()->getRequest();
4 ответа
Если вы действительно хотите, вы можете достичь этого призвания:
public function _initRequest()
{
$this->bootstrap('frontController');
$front = $this->getResource('frontController');
$front->setRequest(new Zend_Controller_Request_Http());
$request = $front->getRequest();
}
Однако этого следует избегать, поскольку большинство данных, которые вам нужны от объекта Response, будут доступны после отправки фронт-контроллера (например, модуля, контроллера или имени действия).
Другие переменные, хранящиеся в объекте Response, извлекаются из глобальных массивов, таких как $_SERVER
, $_POST
или же $_GET
которые вы можете в исключительных случаях читать непосредственно в начальной загрузке.
Но, скорее всего, вы хотите использовать объект Response в плагине фронт-контроллера:
class Your_Controller_Plugin_PluginName extends Zend_Controller_Plugin_Abstract
{
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
// do anything with the $request here
}
}
Вы не должны получать объект objet, поскольку, если вы видите цикл диспетчеризации, идея состоит в том, что начальная загрузка - это действия, предшествующие выполнению в запросе.
Если вам нужно каким-то образом изменить приложение, используйте для этого плагин Controller.
Вам нужно сначала загрузить frontController, попробуйте что-то вроде:
function initFoo()
{
$this->bootstrap('frontController');
$req = $this->frontController->getRequest();
}
Использовать вместо фабрики
http://www.yourweb.com/somecontroller/index/id/12
$ id = Zend_Controller_Front:: getInstance () -> getRequest () -> id;
echo $ id;
// эхо 12