magento2
Wstrzykiwanie zależności
Szukaj…
Wymiana argumentów
<!-- <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>
Preferencje klasowe
<!-- <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>
Powyższy przykład to składnia zastąpienia modelu rdzenia.
Oto lista punktów, które opisują, jak to umożliwić
moduleDir - katalog rozszerzeń Podobnie jak
app/code/custom/extension
tutajextension
jest katalogiem, w którym zostaną umieszczone wszystkie niezbędne foldery rozszerzenia.area - obszar będzie
frontend
lubadminhtml
frontend - jeśli rozszerzenie będzie korzystało z funkcji frontendu, to
di.xml
przejdzie do tego folderuadminhtml - jeśli rozszerzenie będzie korzystało z funkcji adminpanel, to
di.xml
przejdzie do tego folderuwięc będzie to
app/code/custom/extension/etc/frontend/di.xml
lubapp/code/custom/extension/etc/adminhtml/di.xml
Jeśli chcesz korzystać z obu funkcji, plik
di.xml
przejdzie bezpośrednio do folderuetc
nie musisz umieszczać go w folderzefrontend
aniadminhtml
. Like -app/code/custom/extension/etc/di.xml
for = „Vendor \ Namespace \ Model \ Example” w tym miejscu ścieżka do pliku, która zastąpi funkcjonalność żądanej funkcji.
type = "Vendor \ Namespace \ Model \ AnotherExample" w tym miejscu ścieżka do pliku, który zapewni funkcje, które zostaną zastąpione
step - 3
Wtrysk Konstruktora
/**
* @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();
}