Unterschied zwischen $ this-> helper und Mage :: helper

7

Befindet sich der folgende Code in der HTML-Datei $this->helper('catalog/category')und Mage::helper('catalog/category')gibt dasselbe Objekt zurück?

Was bedeutet es, $this->helper()und zu verwenden Mage::helper()?

Manikandan Arunachalam
quelle

Antworten:

12

Grundsätzlich $this->helperruft das die Funktion auf, die in der Blockklasse der aktuellen Vorlage enthalten ist. Das Mage::helperruft die Funktion in der Klasse "Gott" auf.

Die $this->helpernormalerweise ruft eine Funktion in der Klasse , Mage_Core_Block_Abstractdie das Layout für einen Helfer prüft und ruft dann einfach die normale , Mage::helperwenn sie nicht finden können.

/**
 * Returns helper object
 *
 * @param string $name
 * @return Mage_Core_Block_Abstract
 */
public function helper($name)
{
    if ($this->getLayout()) {
        return $this->getLayout()->helper($name);
    }
    return Mage::helper($name);
}
David Manners
quelle