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. ingrese la descripción de la imagen aquí

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

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top