magento2
Injection de dépendance
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
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.zone - zone sera
frontend
ouadminhtml
frontend - si l'extension utilisera des fonctionnalités de frontend que
di.xml
ira dans ce dossieradminhtml - si l'extension utilisera la fonctionnalité adminpanel que
di.xml
ira dans ce dossieril 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 dossieretc
pas besoin de mettre dans le dossierfrontend
ouadminhtml
. Like -app/code/custom/extension/etc/di.xml
for = "Vendor \ Namespace \ Model \ Example" ici, le chemin du fichier qui remplacera la fonctionnalité de la fonction souhaitée.
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();
}