Pregunta

¿Se pretende que la interceptación sea el método preferido cuando se trata de cambiar el comportamiento de un método original en Magento2 como lo eran los observadores en magento1?

https://wiki.magento.com/display/MAGE2DOC/Using+Interception
¿Fue útil?

Solución

No creo que la intercepción pretenda reemplazar a los observadores de eventos.
Todavía hay eventos enviados en el código Magento2.

Los interceptores son solo una forma de procesar la entrada o salida de un método.
O el comportamiento de un método (usando el around interceptor) pero por lo que tengo entendido, este es un enfoque arriesgado.

Creo que es más una forma de evitar la reescritura de clases tanto como sea posible.
En Magento 1.x, si necesitaba modificar el resultado de un método, necesitaba anular la clase que contiene y el método en sí.
ahora puedes simplemente usar before, after o around interceptores para manipular los datos.

Con los observadores puedes manipular datos en ciertos puntos fijos de un método, no en el método completo en sí.

En mi opinión, utilizar observadores cuando sea posible sigue siendo el mejor enfoque para personalizar incluso en Magento 2.

Otros consejos

La intercepción es la evolución de los eventos.Su objetivo es permitir que un desarrollador escriba su código sin pensar en los puntos de extensión.

Con los eventos que tiene que pensar en los lugares donde realiza el mago :: despachar () para que su módulo sea personalizable.

La intercepción le permite no pensar en esto.Simplemente escribes tu lógica de negocios.Cada método de llamada es un evento.Entonces, si escribe su código de una manera adecuada orientada a objetos, será totalmente personalizable por diseño.

Pero los eventos proporcionan un servicio de nivel superior, proporcionan una interfaz que habla idioma de negocios.Así que los eventos se quedarán en Magento 2.

Actualmente, todavía hay la opción de escuchar eventos específicos y sugeriría que los interceptores son solo un reemplazo para las reescrituras.Todavía usaría los eventos cuando hay uno en su lugar para sus necesidades.

Si observa la versión actual Algunos de los módulos tienen archivos events.xml que incluyen las definiciones.

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top