有一个第三方扩展可以重写特定的Magento核心类。它是块,助手还是模型都没有关系,但在这种情况下,它是模型。现在我遇到这种重写是不好的,我想禁用它而不更改第三方扩展名。因此,我编写了一个依赖于第三方扩展的自定义扩展。禁用第三方重写的最佳方法是什么?我能想到的一个安全的方法是定义一个自定义重写,该自定义重写用于代替第三方重写:
<global>
<models>
<custom_extension>
<class>Custom_Extension_Model</class>
</custom_extension>
<mage_core>
<rewrite>
<sth>Custom_Extension_Model_Sth</sth>
</rewrite>
</mage_core>
</models>
</global>
Sth.php
,该类直接从Mage类扩展而来,因此禁用了第三方重写:
class Custom_Extension_Model_Sth extends Mage_Core_Model_Sth
{
}
这可行,但感觉不太好。考虑到观察者,可以通过将它们设置为来仅通过config.xml禁用它们disabled
。通过重写是否可能发生这种情况?我尝试使用以下内容,并且可以正常工作:
<global>
<models>
<mage_core>
<rewrite>
<sth></sth>
</rewrite>
</mage_core>
</models>
</global>
但是这样做安全吗?它适用于所有版本吗?我从来没有在野外看到过,这就是为什么我要问。