Suche…


Argument ersetzen

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

Klassenpräferenz

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

Das obige Beispiel ist eine Syntax für das Überschreiben des Kernmodells.

Hier ist eine Liste von Punkten, in denen beschrieben wird, wie dies möglich ist

  1. moduleDir - Erweiterungsverzeichnis Wie bei app/code/custom/extension hier die extension Ihr Verzeichnis, in dem alle erforderlichen Ordner der Erweiterung abgelegt werden.

  2. area - area wird frontend oder adminhtml

    • frontend - wenn die Erweiterung die Funktionalität des Frontends di.xml , geht di.xml in diesen Ordner

    • adminhtml - Wenn die Erweiterung die Funktionalität von Adminpanel di.xml , geht di.xml in diesen Ordner

    • es wird also app/code/custom/extension/etc/frontend/di.xml oder app/code/custom/extension/etc/adminhtml/di.xml

    • Wenn Sie sowohl die Funktionalität als di.xml Datei di.xml verwenden di.xml , gehen Sie direkt in den Ordner etc nicht erforderlich, den Ordner frontend oder adminhtml . Like - app/code/custom/extension/etc/di.xml

  3. for = "Vendor \ Namespace \ Model \ Example" at hier der Pfad der Datei, die die Funktionalität der gewünschten Funktion überschreibt.

  4. type = "Vendor \ Namespace \ Model \ AnotherExample" at hier, der Pfad der Datei, die Funktionen enthält, die von step - 3 überschrieben werden

Konstruktorinjektion

/**
 * @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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow