Faz interceptação na magento2 substituir observadores em magento1?
-
12-12-2019 - |
Pergunta
É a interceptação se destina a ser o método preferido quando se lida com a mudança de comportamento de um método original em Magento2 como observadores foi em magento1?
https://wiki.magento.com/display/MAGE2DOC/Using+Interception
Solução
Eu não acho que a interceptação destina-se a substituir evento observadores.
Há ainda eventos expedidos no Magento2 código.
Os interceptores são apenas uma forma de processar a entrada ou saída de um método.
Ou o comportamento de um método (usando o around
interceptor), mas o que eu entendo que isso é uma arriscada abordagem.
Eu acho que é mais uma maneira de evitar a classe reescreve o máximo possível.
No Magento 1.x, se necessário, modificar o resultado de um método necessário para substituir a classe que contém o método em si.
agora você pode simplesmente usar before
, after
ou around
interceptores para manipular os dados.
Com observadores você pode manipular dados em determinados pontos fixos de um método, e não o método em si.
Na minha opinião, observadores, quando possível, é ainda a melhor abordagem para personalizar ainda no Magento 2.
Outras dicas
A interceptação é a evolução dos acontecimentos.Seu objetivo é permitir que um programador para escrever o seu código, sem pensar em pontos de extensão.
Com eventos que você tem que pensar sobre lugares onde você faz Mage::dispatchEvent() para que o módulo será personalizável.
Interceptação permite-lhe não pensar sobre isso.Você acabou de escrever sua lógica de negócios.Cada chamada de método é um evento.Portanto, se você escrever seu código em um bom maneira orientada a objetos, ele vai ser totalmente personalizável por design.
Mas os acontecimentos oferecer Serviço de nível mais alto Fornecer Interface que fala a linguagem dos negócios.Para que os eventos vão ficar em Magento 2.
Atualmente, ainda há a opção de ouvir a eventos específicos e gostaria de sugerir que os interceptores é apenas um substituto para reescreve.Eu ainda uso os eventos quando há um homem no lugar para as suas necessidades.
Se você olhar para o lançamento atual de algum dos módulos events.xml
os ficheiros que incluem as definições.
<event name="cms_wysiwyg_images_static_urls_allowed">
<observer name="catalog_wysiwyg" instance="Magento\Catalog\Model\Observer" />
</event>