In Zend Framework, most of the time to get a param, i will use
// from controller
$this->getRequest()->getParam('key');
but how can i get just GET params using the 'Zend' way? Or do i just use $_GET
? Is there any difference between
$this->getRequest()->getParam('key');
vs
$_GET['key'];
Use getQuery()
:
$this->_request->getQuery('key');
Other methods available include
getParam()
checks user params first, then $_GET, and then $_POST, returning the first match found or null.
Try to avoid accessing the superglobals directly.
The main difference is that
$_GET['key'];
is a dependency on the environment. It requires the superglobal to be available and containing a key of that name. It's also just a simple array access, while
$this->getRequest()->getParam('key');
is an API method call. Access to the Request is abstracted. There is no dependency on the actual environment. The Request object could be a mock. The getParam
method will always return a value regardless whether it is from $_GET
or $_POST
.
Putting an abstraction on top of the Request is better, because it allows for more decoupling, less dependencies and therefor makes your application easier to test and maintain.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With