Как Magento создает динамические функции? - PullRequest
2 голосов
/ 18 ноября 2011

Может кто-нибудь сказать мне, как Magento создает динамические функции?Например, для информации о продукте мы вызываем:

$product = Mage::getModel('catalog/product')->load(29);

$product->getData(), чтобы вернуть все данные в формате массива.Но мы можем получить ту же информацию из отдельных функций, например:

$product->getSkuId()
$product->getProdId()
$product->getName()

Может кто-нибудь сказать мне, как Magento создает эти динамические функции?

Ответы [ 2 ]

5 голосов
/ 18 ноября 2011

Magento использует __ call магический метод.Когда вы пытаетесь вызвать метод, который действительно не существует с этим классом, и если вы определили метод __call в своем классе, вызывается метод __call, и Magento берет имя фактического запрошенного метода и вызывает другой метод.который обрабатывает этот запрос для извлечения конкретной вещи для вас.

РЕДАКТИРОВАТЬ

Все классы модели наследуются от класса Varien_Object, см. схема а магические методы, такие как __get, __set и __call, определены здесь в классе Varien_Object и будут использоваться классами, которые наследуются классом Varien_Object.Вы можете найти этот класс здесь /magento_installation_diretctory/lib/Varien/Object.php.

просмотреть исходный код класса Varien_Object.

1 голос
/ 18 ноября 2011

возможно, используя __ call

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...