Há uma extensão de terceiros que reescreve uma classe principal específica do Magento. Não importa se é um bloco, auxiliar ou modelo, mas, neste caso, é um modelo. Agora, acho que essa reescrita está incorreta e gostaria de desativá-la sem alterar a extensão de terceiros. Por isso, escrevo uma extensão personalizada que depende da extensão de terceiros. Qual é a melhor maneira de desativar a reescrita de terceiros? O mais seguro em que posso pensar é definir uma reescrita personalizada, usada em vez da reescrita de terceiros:
<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
, a classe se estende diretamente da classe Mage e, portanto, desabilita a reescrita de terceiros:
class Custom_Extension_Model_Sth extends Mage_Core_Model_Sth
{
}
Isso funciona, mas não parece muito bom. Pensando nos observadores, é possível desativá-los apenas via config.xml configurando-os para disabled
. É possível algo assim com reescritas? Eu tentei usar o seguinte e funciona:
<global>
<models>
<mage_core>
<rewrite>
<sth></sth>
</rewrite>
</mage_core>
</models>
</global>
Mas é seguro fazer isso? Funciona em todas as versões? Eu nunca vi isso na natureza, é por isso que estou perguntando.