magento2
निर्भरता अन्तःक्षेपण
खोज…
तर्क प्रतिस्थापन
<!-- <moduleDir>/etc/<area>/di.xml -->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<!-- ... -->
<type name="Vendor\Namespace\Model\SomeClass">
<arguments>
<argument name="object" xsi:type="object">Vendor\Namespace\Model\SomeOtherClass</argument>
</arguments>
</type>
</config>
वर्ग वरीयता
<!-- <moduleDir>/etc/<area>/di.xml -->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<!-- ... -->
<preference
for="Vendor\Namespace\Model\Example"
type="Vendor\Namespace\Model\AnotherExample" />
<!-- ... -->
</config>
ऊपर का उदाहरण ओवरराइड कोर मॉडल का एक सिंटैक्स है।
यहां उन बिंदुओं की एक सूची दी गई है जो आपको बताएंगे कि इसे कैसे संभव किया जाए
मॉड्यूलडायर - एक्सटेंशन निर्देशिका जैसे
app/code/custom/extension
यहांextension
आपकी निर्देशिका है जिसमें एक्सटेंशन के सभी आवश्यक फ़ोल्डर रखे जाएंगे।क्षेत्र - क्षेत्र
frontend
याadminhtml
दृश्यपटल - अगर विस्तार से दृश्यपटल की कार्यक्षमता का उपयोग करेगा
di.xml
होगा इस फोल्डर में लिए चला जाता हैadminhtml - अगर विस्तार
di.xml
तुलना में adminpanel की कार्यक्षमता का उपयोग करेगा इस फ़ोल्डर में जाता हैतो यह
app/code/custom/extension/etc/frontend/di.xml
याapp/code/custom/extension/etc/adminhtml/di.xml
यदि
di.xml
फ़ाइल की तुलना में दोनों कार्यक्षमता का उपयोग करना चाहते हैं तोetc
फोल्डर में सीधे जाता है, जिसेfrontend
याadminhtml
फ़ोल्डर में डालने की कोई आवश्यकता नहीं है। जैसे -app/code/custom/extension/etc/di.xml
यहाँ = "विक्रेता \ Namespace \ Model \ Example" के लिए, फ़ाइल का पथ जो वांछित फ़ंक्शन की कार्यक्षमता को ओवरराइड करेगा।
टाइप करें = "वेंडर \ Namespace \ Model \ OtherExample" यहाँ पर, फ़ाइल का पथ जो फ़ंक्शंस प्रदान करेगा जो
step - 3
द्वारा ओवरराइड करेगाstep - 3
कंस्ट्रक्टर इंजेक्शन
/**
* @var \Vendor\Module\Helper\Data
*/
protected $customHelper;
/**
* Constructor call
* @param \Vendor\Module\Helper\Data $customHelper
*/
public function __construct(
\Vendor\Module\Helper\Data $customHelper
)
{
$this->customHelper = $customHelper;
parent::__construct();
}