Come scoprire quali metodi Getter sono disponibili
-
29-09-2020 - |
Domanda
Spesso sto lavorando su un modello magento o blocco e mentre cerco una variabile provo a usare un metodo Gettter.
Io uso XDEBUG in modo da normalmente, vado attraverso il debugger e trovo ciò di cui ho bisogno e indovina il metodo Gettter, e di solito funziona. Ad esempio:
$this->getProduct()->getId();
.
Ma a volte non riesco a trovare il metodo Gettter e utilizzare XDebug con PhPstorm per valutare l'espressione per il valore di cui ho bisogno.
Di solito mi dà un'espressione come il seguente:
$program['type']->_data['special_url_key']
.
Mentre questo funziona, non sembra essere il modo migliore per farlo, ho provato a usare $program->getType();
ma non funziona.
Sono percorsi qualcosa? L'esempio sopra è da un modulo personalizzato, ho pensato con I metodi di Magento Magic Getter & Setter dovrebbe ancora funzionare. Sebbene, guardando questo modulo il blocco in questione eredita o si estende da mage_core_block_template
Soluzione
Sembra che $program
non sia né un'istanza di Varien_Object
né un oggetto, quindi no I metodi di sovraccarico sono disponibili.
$program['type']->getSpecialUrlKey()
potrebbe funzionare se l'array ha una voce con il tasto type
che è un'istanza di Varien_Object
.
Per semplificare la vita di uno sviluppatore, le classi che offrono metodi "magici" dovrebbero essere annotati di conseguenza, vedere Mage_Sales_Model_Order
ad esempio.