Ada ekstensi pihak ketiga yang menulis ulang kelas inti Magento tertentu. Seharusnya tidak masalah apakah itu blok, helper atau model, tetapi dalam hal ini adalah model. Sekarang saya menemukan bahwa penulisan ulang ini buruk dan saya ingin menonaktifkannya tanpa mengubah ekstensi pihak ketiga. Karenanya, saya menulis ekstensi khusus yang tergantung pada ekstensi pihak ketiga. Apa cara terbaik untuk menonaktifkan penulisan ulang pihak ketiga? Yang aman yang bisa saya pikirkan adalah mendefinisikan penulisan ulang kustom, yang digunakan sebagai ganti penulisan ulang pihak ketiga:
<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
, kelas langsung meluas dari kelas Mage dan karenanya menonaktifkan penulisan ulang pihak ketiga:
class Custom_Extension_Model_Sth extends Mage_Core_Model_Sth
{
}
Ini bekerja, tetapi tidak terasa terlalu enak. Berpikir tentang pengamat, dimungkinkan untuk menonaktifkannya hanya melalui config.xml dengan mengaturnya disabled
. Apakah hal seperti ini dimungkinkan dengan penulisan ulang? Saya mencoba menggunakan yang berikut ini dan berhasil:
<global>
<models>
<mage_core>
<rewrite>
<sth></sth>
</rewrite>
</mage_core>
</models>
</global>
Tetapi apakah aman untuk melakukan itu? Apakah ini berfungsi di semua versi? Saya tidak pernah melihat itu di alam liar, itulah sebabnya saya bertanya.