Cómo averiguar qué métodos de Getter están disponibles
-
29-09-2020 - |
Pregunta
A menudo estoy trabajando en una plantilla o bloque magento y mientras busco una variable, trato de usar un método de Getter.
Yo uso Xdebug, por lo que normalmente, simplemente voy por el depurador y busco lo que necesito y adivino el método de Getter, y generalmente funciona. Por ejemplo:
$this->getProduct()->getId();
Pero a veces no puedo encontrar el método de Getter y usar Xdebug con PHPStorm para evaluar la expresión para el valor que necesito.
Esto generalmente me da una expresión como la siguiente:
$program['type']->_data['special_url_key']
Si bien esto funciona, no parece ser la mejor manera de hacerlo, he intentado usar $program->getType();
pero no funciona.
¿Estoy perdiendo algo? El ejemplo anterior es de un módulo personalizado, pensé con Métodos Magento Magic Getter & Setter Sigue funcionar. Aunque, observando este módulo, el bloque en cuestión hereda o se extiende desde mage_core_block_template
Solución
Parece que $program
no es una instancia de Varien_Object
ni un objeto en absoluto, por lo que no es Métodos de sobrecarga están disponibles.
$program['type']->getSpecialUrlKey()
podría funcionar si la matriz tiene una entrada con el clave type
que es una instancia de Varien_Object
.
Para facilitar la vida de un desarrollador, las clases que ofrecen métodos "magic" deben anotarse en consecuencia, consulte Mage_Sales_Model_Order
Por ejemplo.