Como descobrir quais métodos getter estão disponíveis
-
29-09-2020 - |
Pergunta
Freqüentemente estou trabalhando em um modelo ou bloco Magento e enquanto procuro uma variável tento usar um método getter.
Eu uso o xDebug, então normalmente apenas passo pelo depurador e encontro o que preciso e adivinho o método getter, e geralmente funciona.por exemplo:
$this->getProduct()->getId();
Mas às vezes não consigo encontrar o método getter e usar xDebug com PHPStorm para avaliar a expressão para o valor que preciso.
Isso geralmente me dá uma expressão como a abaixo:
$program['type']->_data['special_url_key']
Embora funcione, não parece ser a melhor maneira de fazer isso, tentei usar $program->getType();
mas não funciona.
Estou esquecendo de algo?O exemplo acima é de um módulo customizado, pensei com Métodos Magic Getter e Setter do Magento ainda deve funcionar.Embora, olhando para este módulo, o bloco em questão herde ou se estenda de Mage_Core_Block_Template
Solução
Parece $program
não é um exemplo de Varien_Object
nem um objeto, portanto, não métodos de sobrecarga Estão disponíveis.
$program['type']->getSpecialUrlKey()
pode funcionar se o array tiver uma entrada com a chave type
isso é um exemplo de Varien_Object
.
Para facilitar a vida do desenvolvedor, as classes que oferecem métodos "mágicos" devem ser anotadas de acordo, consulte Mage_Sales_Model_Order
por exemplo.