magento2
Abhängigkeitsspritze
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
moduleDir - Erweiterungsverzeichnis Wie bei
app/code/custom/extension
hier dieextension
Ihr Verzeichnis, in dem alle erforderlichen Ordner der Erweiterung abgelegt werden.area - area wird
frontend
oderadminhtml
frontend - wenn die Erweiterung die Funktionalität des Frontends
di.xml
, gehtdi.xml
in diesen Ordneradminhtml - Wenn die Erweiterung die Funktionalität von Adminpanel
di.xml
, gehtdi.xml
in diesen Ordneres wird also
app/code/custom/extension/etc/frontend/di.xml
oderapp/code/custom/extension/etc/adminhtml/di.xml
Wenn Sie sowohl die Funktionalität als
di.xml
Dateidi.xml
verwendendi.xml
, gehen Sie direkt in den Ordneretc
nicht erforderlich, den Ordnerfrontend
oderadminhtml
. Like -app/code/custom/extension/etc/di.xml
for = "Vendor \ Namespace \ Model \ Example" at hier der Pfad der Datei, die die Funktionalität der gewünschten Funktion überschreibt.
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();
}