Es gibt eine Drittanbieter-Erweiterung, die eine bestimmte Magento-Kernklasse neu schreibt. Es sollte keine Rolle spielen, ob es sich um einen Block, einen Helfer oder ein Modell handelt, aber in diesem Fall handelt es sich um ein Modell. Jetzt stelle ich fest, dass dieses Umschreiben schlecht ist und ich es deaktivieren möchte, ohne die Erweiterung eines Drittanbieters zu ändern. Daher schreibe ich eine benutzerdefinierte Erweiterung, die von der Erweiterung eines Drittanbieters abhängt. Was ist der beste Weg, um das Umschreiben durch Dritte zu deaktivieren? Das Sicherste, an das ich denken kann, ist das Definieren eines benutzerdefinierten Umschreibens, das anstelle des Umschreibens von Drittanbietern verwendet wird:
<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
, class erstreckt sich direkt von der Mage-Klasse und deaktiviert daher das Umschreiben durch Dritte:
class Custom_Extension_Model_Sth extends Mage_Core_Model_Sth
{
}
Das funktioniert, fühlt sich aber nicht gut an. Wenn Sie an Beobachter denken, können Sie diese nur über config.xml deaktivieren, indem Sie sie auf setzen disabled
. Ist so etwas mit Umschreibungen möglich? Ich habe versucht, Folgendes zu verwenden, und es funktioniert:
<global>
<models>
<mage_core>
<rewrite>
<sth></sth>
</rewrite>
</mage_core>
</models>
</global>
Aber ist das sicher? Funktioniert es in allen Versionen? Ich habe das in freier Wildbahn nie gesehen, deshalb frage ich.