Zoeken…


Argumentvervanging

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

Klasse voorkeur

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

Bovenstaand voorbeeld is een syntaxis van het vervangende kernmodel.

Hier is een lijst met punten die u zullen beschrijven hoe u dit mogelijk kunt maken

  1. moduleDir - Extensiemap Zoals app/code/custom/extension hier is extension de directory waarin alle benodigde extensiemappen worden geplaatst.

  2. gebied - gebied wordt frontend of adminhtml

    • frontend - als de extensie de functionaliteit van frontend gebruikt, dan gaat di.xml in deze map

    • adminhtml - als de extensie de functionaliteit van adminpanel gebruikt, dan gaat di.xml naar deze map

    • dus het wordt app/code/custom/extension/etc/frontend/di.xml of app/code/custom/extension/etc/adminhtml/di.xml

    • Als zowel de functionaliteit wil gebruiken dan gaat het di.xml bestand direct in de map etc , het is niet nodig om de frontend of adminhtml map te plaatsen. Vind ik leuk - app/code/custom/extension/etc/di.xml

  3. for = "Vendor \ Namespace \ Model \ Example" hier, het pad van het bestand dat de functionaliteit van de gewenste functie vervangt.

  4. type = "Leverancier \ Naamruimte \ Model \ AnotherExample" hier, het pad van het bestand dat functies biedt die bij step - 3 overschrijven step - 3

Constructor injectie

/**
 * @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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow