Question

Souvent, je travaille sur un modèle ou un bloc Magento et, lorsque je recherche une variable, j'essaie d'utiliser une méthode getter.

J'utilise xDebug, donc normalement, je passe simplement par le débogueur, je trouve ce dont j'ai besoin et je devine la méthode getter, et généralement cela fonctionne.Par exemple:

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

Mais parfois, je ne trouve pas la méthode getter et j'utilise xDebug avec PHPStorm pour évaluer l'expression pour la valeur dont j'ai besoin.enter image description here

Cela me donne généralement une expression comme celle-ci :

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

Bien que cela fonctionne, cela ne semble pas être la meilleure façon de le faire, j'ai essayé d'utiliser $program->getType(); mais ça ne marche pas.

Est-ce que j'ai raté quelque chose ?L'exemple ci-dessus provient d'un module personnalisé, j'ai pensé avec Méthodes Magic Getter & Setter de Magento ça devrait quand même fonctionner.Bien que, en regardant ce module, le bloc en question hérite ou s'étend de Mage_Core_Block_Template

Était-ce utile?

La solution

On dirait $program n'est ni un exemple de Varien_Object ni un objet du tout, donc non méthodes de surcharge sont disponibles.

$program['type']->getSpecialUrlKey() pourrait fonctionner si le tableau a une entrée avec la clé type c'est un exemple de Varien_Object.

Pour faciliter la vie d'un développeur, les classes qui proposent des méthodes « magiques » doivent être annotées en conséquence, voir Mage_Sales_Model_Order Par exemple.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top