500 के लिए MageStackDay बोनस सवाल बाउंटी और एक साल के लिए मुफ्त जेड-रे लाइसेंस जीतने की संभावना है। अधिक जानकारी यहाँ पाई जा सकती है >> <<
मैजेंटो 2 कोर डेवलपर एंटोन क्रिल द्वारा प्रश्न प्रदान / प्रेरित किए गए हैं।
सवाल:
मैं एक एक्सटेंशन बना रहा हूं जिसमें कॉन्फ़िगरेशन का एक अलग सेट है।
इस का मतलब है मैं उपयोग नहीं कर सकते config.xml
या routes.xml
या fieldset.xml
या किसी अन्य config एक्सएमएल फ़ाइलें है Magento।
उदाहरण।
मान लीजिए कि मैं एक 'तालिका' कॉन्फिगर को परिभाषित कर रहा हूं जिसमें एक कॉलम है। मैं नीचे इस xml का उपयोग कर सकता हूं। (इसे कॉल करें table.xml
)
<table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="path/to/table.xsd">
<row id="row1">
<column id="col1" sort="10" attr1="val1">
<label>Col 1</label>
</column>
</row>
<row id="row2">
<column id="col1" sort="10" attr1="val1">
<label>Col 1</label>
</column>
<column id="col2" sort="20" disabled="true" attr1="val2" >
<label>Col 2</label>
</column>
<column id="col3" sort="15" attr1="val1">
<label>Col 3</label>
</column>
</row>
</table>
लेकिन अगर किसी अन्य एक्सटेंशन में table.xml
मैं चाहता हूं कि इसे कॉन्फिग रीडर द्वारा उठाया जाए और 2 या अधिक xml फाइलों को मर्ज किया जाए। मेरा मतलब है कि अगर दूसरी फ़ाइल इस तरह दिखती है
<table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="path/to/table.xsd">
<row id="row1">
<column id="col2" sort="10" attr1="val2">
<label>Col 2</label>
</column>
</row>
<row id="row2">
<column id="col1" sort="10" attr1="val5" />
</row>
</table>
इसका परिणाम यह होगा कि दूसरी पंक्ति को पहली पंक्ति में जोड़ा जाता है और attr1
दूसरी xml द्वारा मान को अधिलेखित कर दिया जाता है:
<table ....>
<row id="row1">
<column id="col1" sort="10" attr1="val1"> <!-- from first xml -->
<label>Col 1</label>
</column>
<column id="col2" sort="10" attr1="val2"><!-- from second xml-->
<label>Col 2</label>
</column>
</row>
<row id="row2">
<column id="col1" sort="10" attr1="val5"><!--they apear in both xmls with the same path and id and second one overrides the value for `attr1`-->
<label>Col 1</label>
</column>
<column id="col2" sort="20" disabled="true" attr1="val2"><!-- from first xml -->
<label>Col 2</label>
</column>
<column id="col3" sort="15" attr1="val1"><!-- from first xml -->
<label>Col 3</label>
</column>
</row>
</table>
Magento 1 में मैं सिर्फ कॉल करके ऐसा कर सकता था
$merged = Mage::getConfig()->loadModulesConfiguration('table.xml')
->applyExtends();
मैं Magento 2 के लिए समान कैसे कर सकता हूं?
Dom
कक्षा उदाहरण के साथ देखा । मैंने उत्तरReader
वर्ग के उपयोग पर काम करना शुरू कर दिया । इस बीच मैंने प्रश्न पृष्ठ को रीफ्रेश किया और महसूस किया कि आपने :-) +1