谁能告诉我Magento如何创建动态函数?例如对于产品信息,我们称:
$product = Mage::getModel('catalog/product')->load(29);
$product->getData()
以数组格式返回所有数据。但是我们可以从各个函数中获取相同的信息,例如:$product->getSkuId()
$product->getProdId()
$product->getName()
谁能告诉我Magento如何创建这些动态功能?
最佳答案
Magento正在使用__call魔术方法。当您尝试调用该类中实际上不存在的方法并且如果您在类中定义了__call
方法时,将调用__call
方法,Magento会使用实际请求的方法的名称并调用另一个方法处理该请求以为您获取特定物品的请求。
编辑
所有Model类都是从Varien_Object
类继承的,请参见diagram,并且__get
,__set
和__call
之类的魔术方法在Varien_Object
类中定义,并将由以下类使用。由Varien_Object
类继承。您可以在/magento_installation_diretctory/lib/Varien/Object.php
中找到此类。
查看Varien_Object类的源代码。
关于php - Magento如何创建动态功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8180734/