magento2
Iniezione di dipendenza
Ricerca…
Sostituzione di argomenti
<!-- <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>
Preferenza di 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>
Sopra l'esempio è una sintassi del modello principale di override.
Ecco una lista di punti che ti descriveranno come renderlo possibile
moduleDir - Extension directory Come
app/code/custom/extension
hereextension
è la tua directory in cui verranno posizionate tutte le cartelle di estensione necessarie.area - area sarà
frontend
oadminhtml
frontend - se l'estensione userà la funzionalità di frontend rispetto a
di.xml
andrà in questa cartellaadminhtml - se l'estensione utilizzerà la funzionalità di adminpanel rispetto a
di.xml
andrà in questa cartellaquindi sarà
app/code/custom/extension/etc/frontend/di.xml
oapp/code/custom/extension/etc/adminhtml/di.xml
Se si desidera utilizzare entrambe le funzionalità, il file
di.xml
verrà diretto nella cartellaetc
non sarà necessario inserirlo nella cartellafrontend
oadminhtml
. Mi piace -app/code/custom/extension/etc/di.xml
for = "Vendor \ Namespace \ Model \ Example" qui, il percorso del file che sovrascriverà la funzionalità della funzione desiderata.
type = "Vendor \ Namespace \ Model \ AnotherExample" qui, il percorso del file che fornirà funzioni che sovrascriveranno
step - 3
Costruttore di iniezione
/**
* @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();
}