Magento getParam v $_GET

Lesezeit: 2 Minuten

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().

  • Gibt auch Zugriff auf Parameter, die aus der URL geparst wurden, zB site.com/foo/bar/baz/bip/bop/boom/bum hätte die Parameter bip = bop und boom = bum

    – Richtwerte

    23. November 2012 um 19:43 Uhr

  • Ah, ja – ich kann nicht glauben, dass ich das verpasst habe 🙂

    – Joseph bei SwiftOtter

    23. November 2012 um 20:48 Uhr

  • Und was genau ist ein “Param”, wenn nicht ein Anfrageparameter (Teil der URL)? Warum würden Sie verwenden setParam()?

    – Buttle Butkus

    28. Oktober 2015 um 0:57 Uhr

  • Ein Parameter in Magento ist ein Helfer für ein kombiniertes Array der Werte, die in den URL-, GET- und POST-Variablen gefunden werden. Ich sehe nicht viel Verwendung für setParam() außer Werte zu filtern oder zu parsen, bevor sie das System erreichen (in a predispatch Beobachter). Das wird nicht oft verwendet, aber es ist hilfreich, wenn Sie es brauchen.

    – Joseph bei SwiftOtter

    28. Oktober 2015 um 15:46 Uhr

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

  • $_GET enthält unabhängig von der Anfragemethode Parameter aus der Abfragezeichenfolge. $_POST enthält Parameter aus dem Anforderungstext wenn das Content-Type Header der Anfrage war application/x-www-form-urlencoded und die Anfragemethode war POST

    – Esailija

    23. November 2012 um 18:11 Uhr

  • Sie können Inhaltstyp json POST 😉

    – E_p

    23. November 2012 um 18:12 Uhr

1033410cookie-checkMagento getParam v $_GET

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy