Anotações Magento 2: Plugins

Plugins são utilizados para extender, mudar o comportamento de qualquer método nativo de Magento em uma clasee.

Plugins alteram o comportamento da classe original mas não altera a classe propriamente.

Você não poder utilizar plugins para métodos finais, classes finais, métodos privado, ou classes criadas sem injeção de dependência.

Para garantir que o plugin funcione corretamente, você deve seguir regras de declaração e de nomes.

Plugins permitem modificar um métodos, enquanto a preferência permite alterar toda a classe.

No Magento 2, customizações podem ser realizadas através de:

* Preferências: Permite re-ecrever uma classe e trabalhar no novo nível da classe
* Injeção de Dependência
* Plugins: Permite customizar um método. Este método é basicamente re-escritas e eventos no nível da classe.

Plugins não conflitam entre eles pois são executados um após o outro.

Intercepção é uma abordagem utilizada para reduzir conflitos entre extensões que alteram o comportamento da mesma classe ou método.

Um interceptor é basicamente uma nova classe gerada, que irá chamar todo plugin, assim como o método original.

Você deve especificar os seguintes elementos quando estiver declarando um plugin:

* Type Name: Uma classe, interface, ou tipo virtual que o plugin observa.
* Plugin Name: Nome arbitrário que identifica o plugin.
* Plugin Type: O nome da classe do plugin ou o tipo virtual, utiliza a convencão <ModelName>\Plugin.

Os seguintes argumentos são opcionais e apenas devem ser especificados se necessário.

É uma boa prática omitir esses argumentos por padrão.

Plugin sort order: A ordem em que o plugi que chama o mesmo métodos são executados
Plugin disabled: Configure como verdadeiro para desabilitar o plugin.

Se você precisa alterar os argumentos de um método original, ou adicionar algum comportamento antes do método ser chamado. você deve utilizar o método: before-listener.

Se você precisa alterar os valores retornados pelo método original, ou adicionar algum comportamento após o método original ser chamado, você deve utilizar o método: after-listener.

Se você precisa alterar ambos o argumento e os valores retornados de um método original, ou adicionar algum comportamento antes ou após o método ser chamado, você deve utilizar o método around-listener.

Se você precisa alterar os valores retornados pelo método original, ou adicionar algum comportamento após o método original ser chamado, você deve utilizar o método: after-listener.

Se você precisa alterar ambos o argumento e os valores retornados de um método original, ou adicionar algum comportamento antes ou após o método ser chamado, você deve utilizar o método around-listener.

Diversas condições influenciam como aplicar plugins para a mesma classe/interface

Seja se o método listener em um plugin deve ser aplicado, antes, após ou “around” o método original.

O “Sort order” do plugin”: Parâmetro que defini a ordem em que um plugin que usa o mesmo tipo de listener e chama o mesmo método são executados.

Cada módulo do Magento 2 possui seu próprio conjunto de arquivos de configuracão na pasta etc/.

Dependendo das necessidades de seu módulo, você terá os seguintes arquivos de configuração

acl.xml
config.xml
di.xml
module.xml
webapi.xml

Devidas a herança da configuração, nos podemos criar um módulo, tornar-lo dependente de um módulo do core e redefinir as preferências para uma certa interface.

Arquivos de configuracão de módulos carregados posteriormente, podem alterar os valores declarados por uma configuração carregada anteriormente.

Pos isto especificar a sequência é importante.

A herança de configuração envolve operações dispendiosas no runtime.

A ferramenta de compilação pode ser usada para minimizar o impacto na performance dessas operações.

2017-01-24T20:23:11+00:00

RECEBA DICAS VALIOSAS NO SEU EMAIL

x