एक तृतीय-पक्ष विस्तार है जो एक विशिष्ट Magento कोर वर्ग को फिर से लिखता है। इससे कोई फर्क नहीं पड़ता कि यह ब्लॉक, हेल्पर या मॉडल है, लेकिन इस मामले में यह एक मॉडल है। अब मेरा सामना है कि यह फिर से लिखना बुरा है और मैं इसे तीसरे पक्ष के विस्तार को बदलने के बिना अक्षम करना चाहूंगा। इसलिए, मैं एक कस्टम एक्सटेंशन लिखता हूं जो थर्ड पार्टी एक्सटेंशन पर निर्भर करता है। तीसरे पक्ष के पुनर्लेखन को अक्षम करने का सबसे अच्छा तरीका क्या है? मैं जिस एक के बारे में सोच सकता हूं वह एक कस्टम रीराइट को परिभाषित करना है, जिसे तीसरे पक्ष के पुनर्लेखन के बजाय उपयोग किया जाता है:
<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
, वर्ग सीधे Mage वर्ग से निकलता है और इसलिए तीसरे पक्ष को फिर से लिखना अक्षम करता है:
class Custom_Extension_Model_Sth extends Mage_Core_Model_Sth
{
}
यह काम करता है, लेकिन बहुत अच्छा नहीं लगता है। पर्यवेक्षकों के बारे में सोचकर, उन्हें config.xml के माध्यम से केवल उन्हें अक्षम करना संभव है disabled
। क्या पुनर्लेखन के साथ ऐसा कुछ संभव है? मैंने निम्नलिखित का उपयोग करने की कोशिश की और यह काम करता है:
<global>
<models>
<mage_core>
<rewrite>
<sth></sth>
</rewrite>
</mage_core>
</models>
</global>
लेकिन क्या ऐसा करना सुरक्षित है? क्या यह सभी संस्करणों में काम करता है? मैंने कभी नहीं देखा कि जंगली में, यही कारण है कि मैं पूछ रहा हूं।