Zend Framework: ¿Puedo obtener GET params?

En Zend Framework, la mayoría de las veces para obtener un param, usaré

// from controller $this->getRequest()->getParam('key'); 

pero ¿cómo puedo obtener GET params usando la forma ‘Zend’? ¿O solo uso $_GET ? ¿Hay alguna diferencia entre

 $this->getRequest()->getParam('key'); 

vs

 $_GET['key']; 

Use getQuery() :

 $this->_request->getQuery('key'); 

Otros métodos disponibles incluyen

  • getParam ()
  • getQuery ()
  • getPost ()
  • getCookie ()
  • getServer ()
  • getEnv ()

getParam() comprueba los parámetros de usuario primero, luego $ _GET, y luego $ _POST, devolviendo la primera coincidencia encontrada o nula.

Intenta evitar acceder directamente a los superglobales.

La principal diferencia es que

 $_GET['key']; 

es una dependencia del medio ambiente Requiere que el superglobal esté disponible y contenga una clave de ese nombre. También es solo un acceso de matriz simple, mientras

 $this->getRequest()->getParam('key'); 

es una llamada al método API. El acceso a la Solicitud se abstrae. No hay dependencia en el entorno real. El objeto Request podría ser un simulacro. El método getParam siempre devolverá un valor independientemente de si es de $_GET o $_POST .

Poner una abstracción en la parte superior de la Solicitud es mejor, ya que permite un mayor desacoplamiento, menos dependencias y, por lo tanto, hace que su aplicación sea más fácil de probar y mantener.

Después de estudiar la documentación de enlace de datos en profundidad de Zend 2 , he encontrado que es mejor acceder a los parámetros de la ruta a través del complemento Params de acceso automático. Utilizando este complemento, puede obtener un parámetro como se muestra a continuación desde dentro de un controlador.

 $this->params('key'); 

Esto funciona para ZF2

 $this->params()->fromQuery('key', 1); // second argument is optional default paramter