特定の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>
しかし、それは安全ですか?すべてのバージョンで機能しますか?私はそれを野生で見たことがないので、私は尋ねています。