So finden Sie heraus, welche Getter-Methoden verfügbar sind
-
29-09-2020 - |
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.
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
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.