Recherche…


Remplacement d'argument

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

Préférence de classe

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

Ci-dessus Exemple est une syntaxe de modèle de base de substitution.

Voici une liste de points qui vous décriront comment la rendre possible

  1. moduleDir - Répertoire d' extension Comme app/code/custom/extension , l' extension est votre répertoire dans lequel tous les dossiers d'extension nécessaires seront placés.

  2. zone - zone sera frontend ou adminhtml

    • frontend - si l'extension utilisera des fonctionnalités de frontend que di.xml ira dans ce dossier

    • adminhtml - si l'extension utilisera la fonctionnalité adminpanel que di.xml ira dans ce dossier

    • il s'agira donc de l' app/code/custom/extension/etc/frontend/di.xml ou de l' app/code/custom/extension/etc/adminhtml/di.xml

    • Si veut utiliser à la fois la fonctionnalité que le fichier di.xml va aller directement dans le dossier etc pas besoin de mettre dans le dossier frontend ou adminhtml . Like - app/code/custom/extension/etc/di.xml

  3. for = "Vendor \ Namespace \ Model \ Example" ici, le chemin du fichier qui remplacera la fonctionnalité de la fonction souhaitée.

  4. type = "Fournisseur \ Namespace \ Model \ AnotherExample" ici, le chemin du fichier qui fournira des fonctions qui remplaceront par step - 3

Constructeur Injection

/**
 * @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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow