O documento descreve como aplicar correções de bugs no Magento 2 usando o plugin Composer cweagans/composer-patches. Isso envolve criar um patch a partir de um pull request do GitHub, adicioná-lo ao diretório vendor_patches e configurar o composer.json para aplicar o patch durante o composer update. O plugin permite aplicar correções de bugs de forma rápida e fácil em instalações do Magento 2 baseadas no Composer.
6. Plugin
❏ Uma classe que modifica o comportamento de funções públicas
de classes;
❏ Intercepta uma chamada de função, executando um código antes,
depois ou em torno dessa chamada;
❏ Permite que se substitua ou estenda o comportamento de
métodos públicos para qualquer classe ou interface.
7. ❏ Objetos que são instanciados antes da classe
MagentoFrameworkInterception;
❏ Métodos Finais;
❏ Qualquer método de classes finais;
❏ Qualquer classe que contenha pelo menos um método público
final;
❏ Métodos não públicos;
❏ Métodos estáticos;
❏ __constructor;
❏ Virtual types.
Plugin -Limitações
9. Preferences
❏ Parecido com rewrites do Magento 1;
❏ Permitem que se substitua uma instância de uma classe por outra
dentro do Magento 2;
❏ Recurso muito poderoso, mas também vem com a mesma
responsabilidade do Magento 1;
10. Preferences - Limitações
❏ Dois módulos não podem reescrever a mesma classe;
❏ Dois módulos reescrevendo uma mesma classe, haverá um
conflito.
11. Can't change the applied theme in 2.2.4 #14968
Fonte: https://github.com/magento/magento2/issues/14968
13. cweagans/composer-patches
❏ Leva um tempo para incluir uma correção de bug feita no GitHub
em uma versão do Magento 2 Composer;
❏ Criar um patch a partir do GitHub e usar o plugin para aplicá-lo em
uma instalação do Magento 2 baseada em Composer.
Fonte: https://support.magento.com/hc/en-us/articles/360005484154
17. cweagans/composer-patches
❏ Edite o arquivo e remova app/code/<VENDOR>/<PACKAGE> de
todos os caminhos que são relativos ao
vendor/<VENDOR>/<PACKAGE> directory