Zend Framework: bootstrap istek nesnesi alma

4 Cevap php

Nasıl önyükleme dosyası içinde gelen istek nesnesini alabilirim?

Ben bu yöntemleri deneyin ama çalışmıyor olabilir.

$request= new Zend_Controller_Request_Http();
$request = Zend_Controller_FrontController::getInstance()->getRequest();

4 Cevap

Eğer gönderme döngü görürseniz, fikir önyükleme bir isteği yürütmek için ön koşul olmasıdır beri, istek Nesneyi almak gerekir.

Bunu yapmak için uygulama kullanımı bir Denetleyicisi Eklentisi someway değiştirmek gerekir.

Eğer gerçekten istiyorsanız, bu çağrı elde edebilir:

public function _initRequest()
{
    $this->bootstrap('frontController');
    $front = $this->getResource('frontController');
    $front->setRequest(new Zend_Controller_Request_Http());

    $request = $front->getRequest();
}

Ön denetleyici (örn. modülü, denetleyici veya eylem adı) gönderildikten sonra Response nesnesi gereken en Eldeki olacaktır Ancak, bu, kaçınılmalıdır.

Response nesnesi saklanan diğer değişkenler exceptionally doğrudan okuyabilir gibi $_SERVER, $_POST veya $_GET, hangi küresel dizileri ayıklanır bootstrap içinde.

Ama büyük olasılıkla, size front controller plugin olarak Response nesnesi kullanmak istiyorsanız:

class Your_Controller_Plugin_PluginName extends Zend_Controller_Plugin_Abstract
{
     public function preDispatch(Zend_Controller_Request_Abstract $request)
     {
         // do anything with the $request here
     }
}

Sen gibi bir şey denemek, ilk frontController bootstrap gerekir:

function initFoo()
{
    $this->bootstrap('frontController');
    $req = $this->frontController->getRequest();
}

yerine fabrika kullanmak

http://www.yourweb.com/somecontroller/index/id/12

$ Id = Zend_Controller_Front :: getInstance () -> getRequest () -> id;

$ id echo;

/ / 12 echo