Php 从同级访问magento中重写的类上的祖父母类

Php 从同级访问magento中重写的类上的祖父母类,php,oop,magento,magento-1.9,Php,Oop,Magento,Magento 1.9,需要覆盖customer\u资源类。我为资源重写添加了必需的config.xml选项,但当Overwrited class方法从自身调用父类方法时,它实际上调用了我扩展到的父方法,也没有调用Mage_Customer_Model_resource_Customer的父方法: class My_Plugin_Model_Resource_Customer extends Mage_Customer_Model_Resource_Customer { protected fu

需要覆盖customer\u资源类。我为资源重写添加了必需的config.xml选项,但当Overwrited class方法从自身调用父类方法时,它实际上调用了我扩展到的父方法,也没有调用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中可能出现某种双重向下转换吗

最简单的解决方案,尤其是在这种情况下,是调用:

Mage_Eav_Model_Entity_Abstract::_beforeSave($customer);
由于Mage_客户_模型_资源_客户是Mage_Eav_模型_实体_抽象,它将调用祖父母

另外,还有ReflectionMethod->invoke()的方法


此处的更多信息:

最简单的解决方案,尤其是在这种情况下,是调用:

Mage_Eav_Model_Entity_Abstract::_beforeSave($customer);
由于Mage_客户_模型_资源_客户是Mage_Eav_模型_实体_抽象,它将调用祖父母

另外,还有ReflectionMethod->invoke()的方法

更多信息请点击此处: