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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top