Hay una extensión de terceros que reescribe una clase principal específica de Magento. No debería importar si es un bloque, auxiliar o modelo, pero en este caso es un modelo. Ahora encuentro que esta reescritura es mala y me gustaría deshabilitarla sin cambiar la extensión de terceros. Por lo tanto, escribo una extensión personalizada que depende de la extensión de terceros. ¿Cuál es la mejor manera de deshabilitar la reescritura de terceros? Lo más seguro que se me ocurre es definir una reescritura personalizada, que se utiliza en lugar de la reescritura de terceros:
<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
, la clase se extiende directamente desde la clase Mage y, por lo tanto, deshabilita la reescritura de terceros:
class Custom_Extension_Model_Sth extends Mage_Core_Model_Sth
{
}
Esto funciona, pero no se siente muy bien. Pensando en los observadores, es posible deshabilitarlos solo a través de config.xml configurándolos en disabled
. ¿Es posible algo así con reescrituras? Traté de usar lo siguiente y funciona:
<global>
<models>
<mage_core>
<rewrite>
<sth></sth>
</rewrite>
</mage_core>
</models>
</global>
¿Pero es seguro hacer eso? ¿Funciona en todas las versiones? Nunca vi eso en la naturaleza, es por eso que pregunto.