Платформа зенда: Получение запроса возражает в начальной загрузке

Как я получаю объект запроса из файла начальной загрузки?

Я могу попробовать это методы, но не работа.

$request= new Zend_Controller_Request_Http();
$request = Zend_Controller_FrontController::getInstance()->getRequest();
12
задан Iznogood 3 November 2010 в 21:42
поделиться

3 ответа

Вы не должны получить объект запроса, поскольку, если вы видите цикл диспетчеризации, идея заключается в том, что бутстрап - это действия, предшествующие выполнению в запросе.

Если вам нужно как-то изменить приложение, используйте для этого Controller Plugin.

10
ответ дан 2 December 2019 в 07:02
поделиться

Сначала вам нужно загрузить frontController, попробуйте что-нибудь вроде:

function initFoo()
{
    $this->bootstrap('frontController');
    $req = $this->frontController->getRequest();
}
0
ответ дан 2 December 2019 в 07:02
поделиться

Если вы действительно хотите, вы можете добиться этого, вызывая:

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, которые вы можете в исключительных случаях читать непосредственно в bootstrap.

Но скорее всего, вы хотите использовать объект Response в плагине front controller:

class Your_Controller_Plugin_PluginName extends Zend_Controller_Plugin_Abstract
{
     public function preDispatch(Zend_Controller_Request_Abstract $request)
     {
         // do anything with the $request here
     }
}
12
ответ дан 2 December 2019 в 07:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: