从兄弟姐妹那里获取在magento上覆盖的祖父母班级

时间:2015-11-04 00:56:22

标签: php oop magento magento-1.9

需要覆盖customer_resource类。我为资源重写添加了必需的config.xml选项,但是当覆盖类方法从其自身调用父类方法时,它实际上调用了我扩展到的父方法,也没有调用Mage_Customer_Model_Resource_Customer的父方法:

  class My_Plugin_Model_Resource_Customer extends Mage_Customer_Model_Resource_Customer 
    {

    protected function _beforeSave(Varien_Object $customer){
        parent::_beforeSave($customer);
    ...
        }
    }

那么,在这种情况下如何正确调用父方法?在PHP中可以进行某种双重向下转换?

1 个答案:

答案 0 :(得分:0)

最简单的解决方案,特别是这种情况,是致电:

Mage_Eav_Model_Entity_Abstract::_beforeSave($customer);

作为Mage_Customer_Model_Resource_Customer的必需父级是Mage_Eav_Model_Entity_Abstract,它将调用祖父母。

此外,还有ReflectionMethod-> invoke()

的方法

此处有更多信息:How to call grandparent method without getting E_STRICT error?