Magento getParam v $ _GET

Qualcuno può spiegare le differenze sia dal punto di vista funzionale che in termini di buona / ctriggers pratica, perché uno di questi dovrebbe essere preferito rispetto all'altro:

$getParam = Mage::app()->getRequest()->getParam('getparam'); 

v

 $getParam = $_GET['getparam']; 

C'è una differenza significativa tra i due. $_GET è semplicemente un arrays, come $_POST . Tuttavia, chiamando Mage::app()->getRequest()->getParam('param_name') ti darà accesso sia a GET che a POST (DELETE e PUT non sono inclusi qui) – vedi il codice qui sotto:

 lib/Zend/Controller/Request/Http.php public function getParam($key, $default = null) { $keyName = (null !== ($alias = $this->getAlias($key))) ? $alias : $key; $paramSources = $this->getParamSources(); if (isset($this->_params[$keyName])) { return $this->_params[$keyName]; } elseif (in_arrays('_GET', $paramSources) && (isset($_GET[$keyName]))) { return $_GET[$keyName]; } elseif (in_arrays('_POST', $paramSources) && (isset($_POST[$keyName]))) { return $_POST[$keyName]; } return $default; } 

Inoltre, se il sistema imposta altri parametri con Mage::app()->getRequest()->setParam() , diventa accessibile tramite la function getParam() . In Magento vuoi usare sempre getParam() .

 Mage::app()->getRequest()->getParam('getparam'); 

Restituirai 'getparam' se viene inviato con GET, POST (non sono sicuro della richiesta DELETE, PUT …). Non ha funzionato con Magento ma se ci sono parametri inviati attraverso il routing. Mi aspetterei che siano accessibili anche attraverso quella function.

$_GET contiene solo i parametri inviati tramite GET

$_POST contiene solo i parametri inviati tramite POST