Magento 2 - Cos'è il file interceptor.php?
-
29-09-2020 - |
Domanda
Quando i revoca del file del file del catalogo / del prodotto e ha eseguito questo comando:
.PHP BIN / Mangento Setup: DI: Compile
E poi questo file "interceptor.php" è stato generato in magento_root \ var \ generazione \ mypool \ mymodule \ controller \ adminhtml \ Prodotto \ Inizializzazione \ helper \ interceptor.php
Chiunque, sai?Cos'è questo file?
Soluzione
Magento 2 Plugin System in base al modello di intercettore.Le chiamate a quasi tutti i moduli possono essere intercettate e modificate.Vasto miglioramento rispetto al modello di riscrittura in Magento 1, quindi ovviamente - non più conflitto riscrivi!
Ad esempio:
DI.XML
<config>
<type name="{ObservedType}">
<plugin name="{pluginName}" type="{PluginClassName}" sortOrder="1" disabled="false" />
</type>
</config>
.
Ordina ordinamento Definisce l'ordine se più plugin intercettano lo stesso articolo.È possibile intercettare Prima , dopo e Around una funzione / metodo.
'prima' intercettore
class Plugin
{
public function beforeSetName(\Magento\Catalog\Model\Product $subject, $name)
{
return array('(' . $name . ')');
}
}
.
'dopo' intercettore
class Plugin
{
public function afterGetName(\Magento\Catalog\Model\Product $subject, $name)
{
return array('|' . $name . '|');
}
}
.
'Around' interceptor
class Plugin
{
public function aroundSave(\Magento\Catalog\Model\Product $subject, \Closure $proceed, $name)
{
$this->doSomethingBeforeProductIsSaved();
$returnValue = $proceed($name);
if ($returnValue) {
$this->postProductToFacebook($name);
}
return $returnValue;
}
}
.
Checkout the magento 2 Modulo di esempio Repo per un modulo che dimostra l'intercettazione.
Gli intercettori sono sostitutivi per la riscrittura.Integratore di intercettori, ma non sostituire eventi e osservatori.
Spero che aiuti.