Как узнать, какие методы получения доступны
-
29-09-2020 - |
Вопрос
Часто я работаю над шаблоном или блоком Magento и, ища переменную, пытаюсь использовать метод получения.
Я использую xDebug, поэтому обычно я просто просматриваю отладчик и нахожу то, что мне нужно, и угадываю метод получения, и обычно это работает.например:
$this->getProduct()->getId();
Но иногда я не могу найти метод получения и использую xDebug с PhpStorm для вычисления выражения для нужного мне значения.
Обычно это дает мне выражение, подобное приведенному ниже:
$program['type']->_data['special_url_key']
Хотя это работает, это, кажется, не лучший способ сделать это, я пробовал использовать $program->getType();
но это не работает.
Я что-то упускаю?Приведенный выше пример взят из пользовательского модуля, я подумал с Волшебные методы получения и настройки Magento это все равно должно сработать.Хотя, глядя на этот модуль, рассматриваемый блок наследуется или расширяется от Шаблон Mage_Core_Block_Template
Решение
Это выглядит как $program
не является ни примером Varien_Object
ни объекта вообще, таким образом, никакого методы перегрузки имеются в наличии.
$program['type']->getSpecialUrlKey()
может сработать, если в массиве есть запись с ключом type
это пример Varien_Object
.
Чтобы облегчить жизнь разработчику, классы, предлагающие "волшебные" методы, должны быть соответствующим образом аннотированы, см. Mage_Sales_Model_Order
например.