2009-10-20 18 views
7

Estoy tratando de capturar un parámetro de URL en mi archivo de arranque pero después de varios intentos no puedo hacerlo.Cómo acceder a los parámetros de URL en bootstrap

He intentado esto pero no funciona:

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

Es esta la forma correcta de hacerlo?

Thks.

Respuesta

9

No podrá acceder a los parámetros de solicitud desde el arranque porque todavía no ha pasado por el proceso de envío/enrutamiento. Creo que sería mejor que te sirvieras usando Controller Plugin, realizar acciones basadas en la URL es lo que mejor hacen. O si tiene que hacerlo absolutamente en el bootstrap, getRequestUri() o $_GET está disponible, o podría escribir un guión rápido para analizar la url usted mismo.

Editar:

He hecho algunas cosas tontas como esta en el pasado antes de que me di cuenta de cómo funcionan los plugins:

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

Esto al menos le daría un nombre de módulo que se podría switch en el arranque. Sin embargo, deberías poder hacer todo lo que necesites con los complementos hechos correctamente.

+2

Vea también este artículo de Zend Devzone: http://devzone.zend.com/article/3372 –

+0

Gracias a todos por sus respuestas, probé el enfoque de Plugin antes pero no hizo lo que quería, sin embargo, ' Leeré el artículo que dice 'lonut G. Stan' para verificar si hice algo mal. Si eso no funciona, haré lo $ _GET que sugiera 'Typeoneerror'. – elbicho

Cuestiones relacionadas