2009-10-20 11 views
7

Ich versuche, einen URL-Parameter in meiner Bootstrap-Datei zu erfassen, aber nach mehreren Versuchen kann ich es nicht tun.Zugriff auf URL-Parameter in Bootstrap

Ich habe dies versucht, aber es funktioniert nicht:

protected function _initGetLang() { 
    $frontController = Zend_Controller_Front::getInstance(); 
    $lang= $frontController->getParam('lang'); 
} 

Ist dies der richtige Weg, es zu tun?

.

Antwort

9

Sie können nicht auf die Anfrageparameter vom Bootstrap zugreifen, da der Dispatch/Routing-Prozess noch nicht durchlaufen wurde. Ich denke, Sie würden besser bedient werden, indem Sie eine Controller Plugin verwenden, die Durchführung von Aktionen basierend auf der URL ist, was sie am besten können. Oder wenn Sie es unbedingt im Bootstrap tun müssen, ist getRequestUri() oder $_GET verfügbar, oder Sie könnten ein schnelles Skript schreiben, um die URL selbst zu parsen.

Edit:

ich einige dumme Sachen wie dies in der Vergangenheit getan haben, bevor ich herausgefunden, wie Plugins arbeiten:

/** 
* Grab the module name without a request instance 
* 
* @return string The module name 
*/ 
public static function getModuleName() 
{ 
    $uri = ltrim($_SERVER["REQUEST_URI"], "/"); 
    $module = substr($uri, 0, strpos($uri, "/")); 
    return $module; 
} 

Das zumindest Sie Namen ein Modul, das Sie würde, dass könnte switch im Bootstrap. Sie sollten in der Lage sein, alles zu tun, was Sie brauchen, wenn die Plugins korrekt ausgeführt werden.

+2

Siehe auch diese Zend Devzone Artikel: http://devzone.zend.com/article/3372 –

+0

Vielen Dank für Ihre Antworten, ich habe versucht, die Plugin-Ansatz vor, aber es hat nicht getan, was ich wollte, aber ich ' lch lese den Artikel "lonut G. Stan", um zu überprüfen, ob ich etwas falsch gemacht habe. Wenn das nicht funktioniert, mache ich das $ _GET-Ding, das "Typeoneerror" vorschlägt. – elbicho