Magento的魔术方法

Magento Alan 11年前 (2014-07-10) 6857次浏览 扫描二维码

Magento的ORM系统运用了魔术方法,更确切地说是PHP强大的getter和setter功能,__call()方法。Magento的这些方法用于set, unset, 检查或获取数据。
当我们调用了一个在相应类中不存在的方法时,PHP会在父类中查找是否存在该方法的声明。如果在父类中也查找不到函数,最终会使用__call()方法进行查找,Magento(或者说PHP)会调用该魔术方法,然后会传输请求的方法名和相应的参数。
这里,Product模型中没有定义__call()函数,但它从Magento所有模型都会继承的Varien_Object类中获得该方法。Mage_Catalog_Model_Product类继承的流程图如下:
Magento的魔术方法
%

喜欢 (0)
[]
分享 (0)