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

Другие вопросы по тегам