खोज…


तर्क प्रतिस्थापन

<!-- <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>

ऊपर का उदाहरण ओवरराइड कोर मॉडल का एक सिंटैक्स है।

यहां उन बिंदुओं की एक सूची दी गई है जो आपको बताएंगे कि इसे कैसे संभव किया जाए

  1. मॉड्यूलडायर - एक्सटेंशन निर्देशिका जैसे app/code/custom/extension यहां extension आपकी निर्देशिका है जिसमें एक्सटेंशन के सभी आवश्यक फ़ोल्डर रखे जाएंगे।

  2. क्षेत्र - क्षेत्र 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

  3. यहाँ = "विक्रेता \ Namespace \ Model \ Example" के लिए, फ़ाइल का पथ जो वांछित फ़ंक्शन की कार्यक्षमता को ओवरराइड करेगा।

  4. टाइप करें = "वेंडर \ 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();
}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow