Frage

Oft arbeite ich an einer Magento-Vorlage oder einem Magento-Block und versuche bei der Suche nach einer Variablen eine Getter-Methode zu verwenden.

Ich benutze xDebug, also gehe ich normalerweise einfach den Debugger durch und finde, was ich brauche, und rate die Getter-Methode, und normalerweise funktioniert sie.beispielsweise:

$this->getProduct()->getId();

Aber manchmal kann ich die Getter-Methode nicht finden und xDebug mit PhpStorm verwenden, um den Ausdruck für den von mir benötigten Wert auszuwerten.enter image description here

Dies gibt mir normalerweise einen Ausdruck wie den folgenden:

$program['type']->_data['special_url_key']

Während dies funktioniert, scheint es nicht der beste Weg zu sein, es zu tun, ich habe versucht zu verwenden $program->getType(); aber es funktioniert nicht.

Vermisse ich etwas?Das obige Beispiel stammt aus einem benutzerdefinierten Modul, dachte ich mit Die magischen Getter- und Setter-Methoden von Magento es sollte immer noch funktionieren.Betrachtet man dieses Modul, erbt oder erweitert der betreffende Block jedoch von Mage_core_block_vorlage

War es hilfreich?

Lösung

Es sieht aus wie $program ist weder eine Instanz von Varien_Object überhaupt kein Objekt, also kein methoden zum Überladen sind verfügbar.

$program['type']->getSpecialUrlKey() könnte funktionieren, wenn das Array einen Eintrag mit dem Schlüssel hat type das ist ein Beispiel von Varien_Object.

Um das Leben eines Entwicklers zu erleichtern, sollten Klassen, die "magische" Methoden anbieten, entsprechend kommentiert werden, siehe Mage_Sales_Model_Order beispielsweise.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top