Kann jemand die Unterschiede sowohl funktional als auch in Bezug auf gute/schlechte Praxis erklären, warum eine davon der anderen vorgezogen werden sollte:
$getParam = Mage::app()->getRequest()->getParam('getparam');
v
$getParam = $_GET['getparam'];
Es gibt einen signifikanten Unterschied zwischen den beiden. $_GET
ist einfach ein Array, wie $_POST
. Allerdings anrufen Mage::app()->getRequest()->getParam('param_name')
gibt Ihnen Zugriff auf GET und POST (DELETE und PUT sind hier nicht enthalten) – siehe Code unten:
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_array('_GET', $paramSources) && (isset($_GET[$keyName]))) {
return $_GET[$keyName];
} elseif (in_array('_POST', $paramSources) && (isset($_POST[$keyName]))) {
return $_POST[$keyName];
}
return $default;
}
Außerdem setzt das System andere Parameter mit Mage::app()->getRequest()->setParam()
es wird über die zugänglich getParam()
Funktion. In Magento möchten Sie immer verwenden getParam()
.
Mage::app()->getRequest()->getParam('getparam');
Gibt Ihnen ‘getparam’ zurück, wenn es mit GET, POST (nicht sicher über DELETE, PUT …) Anfrage gesendet wird. Hat nicht mit Magento funktioniert, aber wenn es Parameter gibt, die durch das Routing gesendet werden. Ich würde erwarten, dass sie auch über diese Funktion zugänglich sind.
$_GET
enthält nur Parameter, die über GET gesendet werden
$_POST
enthält nur Parameter, die über POST gesendet werden
10334100cookie-checkMagento getParam v $_GETyes