Belirli bir Magento çekirdek sınıfını yeniden yazan üçüncü taraf bir uzantı var. Bir blok, yardımcı veya model olması önemli değil, ancak bu durumda bir model. Şimdi bu yeniden yazmanın kötü olduğunu ve üçüncü taraf uzantısını değiştirmeden devre dışı bırakmak istiyorum. Bu nedenle, üçüncü taraf uzantısına bağlı özel bir uzantı yazıyorum. Üçüncü taraf yeniden yazmayı devre dışı bırakmanın en iyi yolu nedir? Düşünebileceğim güvenli olan, üçüncü taraf yeniden yazma yerine kullanılan özel bir yeniden yazma tanımlamaktır:
<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
, sınıf doğrudan Mage sınıfından uzanır ve bu nedenle üçüncü tarafların yeniden yazılmasını devre dışı bırakır:
class Custom_Extension_Model_Sth extends Mage_Core_Model_Sth
{
}
Bu çalışıyor, ama çok iyi hissetmiyor. Gözlemciler hakkında düşünmek, onları yalnızca config.xml dosyası olarak ayarlayarak devre dışı bırakmak mümkündür disabled
. Yeniden yazma ile böyle bir şey mümkün mü? Aşağıdakileri kullanmaya çalıştım ve işe yarıyor:
<global>
<models>
<mage_core>
<rewrite>
<sth></sth>
</rewrite>
</mage_core>
</models>
</global>
Ama bunu yapmak güvenli mi? Tüm sürümlerde çalışıyor mu? Bunu hiç vahşi doğada görmedim, bu yüzden soruyorum.