Domanda

è l'intercettazione destinata ad essere il metodo preferito quando si tratta di cambiare il comportamento di un metodo originale in Magento2 poiché gli osservatori erano in Magento1?

https://wiki.magento.com/display/MAGE2DOC/Using+Interception
.

È stato utile?

Soluzione

Non penso che l'intercezione sia destinata a sostituire gli osservatori di eventi.
Ci sono ancora eventi inviati nel codice Magento2.

Gli intercettori sono solo un modo per elaborare l'input o l'output di un metodo.
O il comportamento di un metodo (utilizzando l'intercettore around) ma da quello che capisco è un approccio rischioso.

Penso che sia più un modo per evitare il più possibile le riscritture di classe.
In Magento 1.x, se avessi bisogno di modificare il risultato di un metodo necessario per ignorare la classe che contiene e il metodo stesso.
Ora è possibile utilizzare semplicemente before, after o around Interceptors per manipolare i dati.

Con gli osservatori è possibile manipolare i dati in alcuni punti fissi di un metodo, non il metodo completo stesso.

A mio parere, usando gli osservatori quando possibile è ancora il miglior approccio per personalizzare anche in Magento 2.

Altri suggerimenti

Intercezione è l'evoluzione degli eventi.Il suo obiettivo è consentire a uno sviluppatore di scrivere il suo codice senza pensare ai punti di estensione.

Con gli eventi devi pensare ai luoghi in cui fai Mage :: Speakevent () in modo che il tuo modulo sarà personalizzabile.

Intercezione ti consente di non pensarci.Hai appena scritto la tua logica aziendale.Ogni chiamata del metodo è un evento.Quindi, se scrivi il tuo codice in modo appropriato orientato all'oggetto, sarà completamente personalizzabile dal design.

Ma gli eventi forniscono un servizio di livello superiore fornire un'interfaccia che parla del linguaggio aziendale.Quindi gli eventi rimarranno a Magento 2.

Attualmente c'è ancora la possibilità di ascoltare eventi specifici e suggerirei che gli intercettori siano solo un sostituto per la riscrittura.Userei ancora gli eventi quando c'è un posto in atto per le tue esigenze.

Se si guarda la versione corrente Alcuni dei moduli hanno file events.xml che includono le definizioni.

<event name="cms_wysiwyg_images_static_urls_allowed">
    <observer name="catalog_wysiwyg" instance="Magento\Catalog\Model\Observer"  />
</event>
.

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