2009-10-20 9 views
7

Próbuję przechwycić parametr adresu URL w moim pliku bootstrap, ale po kilku próbach nie jestem w stanie tego zrobić.Jak uzyskać dostęp do parametrów adresu URL w bootstrapie

Próbowałem tego, ale to nie działa:

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

Czy to dobry sposób, żeby to zrobić?

Thks.

Odpowiedz

9

Nie będzie można uzyskać dostępu do parametrów żądania z ładowania początkowego, ponieważ nie przeszedł on jeszcze procesu wysyłania/trasowania. Wydaje mi się, że lepiej będzie Ci służyć przy użyciu Controller Plugin, a wykonywanie czynności na podstawie adresu URL jest najlepsze. Lub jeśli absolutnie musisz to zrobić w bootstrapie, dostępna jest getRequestUri() lub $_GET, lub możesz napisać szybki skrypt, aby samemu przetworzyć adres URL.

Edit:

robiłem jakieś głupie rzeczy, jak to w przeszłości, zanim zorientowali się, jak działają pluginy:

/** 
* 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; 
} 

To przynajmniej daje nazwę modułu, który Cię mógł switch na w bootstrapie. Powinieneś być w stanie zrobić wszystko, czego potrzebujesz, mimo że wtyczki zostały wykonane poprawnie.

+2

Zobacz także ten artykuł Zend Devzone: http://devzone.zend.com/article/3372 –

+0

Dziękuję wam za odpowiedzi, wcześniej próbowałem podejścia Plugin, ale nie zrobiłem tego, co chciałem, niemniej jednak Przeczytam artykuł, w którym "lonut G. Stan" sprawdza, czy zrobiłem coś nie tak, jeśli to nie zadziała, zrobię rzecz __GET, którą sugeruje "Typeoneerror". – elbicho

Powiązane problemy