No Magento 2 (beta9 e superior), você pode executar este comando php bin/magento setup:di:compile
e todos os interceptadores, fábricas e proxies (e talvez outros) serão gerados na var/generation
pasta para todas as classes que você tem na sua instância do magento.
Isso é útil para ambientes ao vivo porque, caso contrário, as classes mencionadas acima serão geradas no tempo de execução quando forem necessárias e podem afetar o desempenho.
Existe uma maneira de excluir algumas classes desse script para que os interceptores não sejam criados ao executar o comando?
Como exemplo: eu quero que o controlador Magento\Backend\Controller\Adminhtml\Dashboard\RefreshStatistics
não tenha interceptores gerados.
magento2-dev-beta
Marius
fonte
fonte
setup:di:compile
falha porque algumas classes pai estão ausentes. As classes que estendem essas classes ausentes ainda existem, mas não são usadas pelo aplicativo. E não consigo removê-los, pois estão nos módulos que preciso. Veja uma explicação completa abaixo: magento.stackexchange.com/questions/69040/…Respostas:
para executar a partir do cli, pelo menos nas versões anteriores, existe o
exclude-pattern
parâmetro Foi adicionado para evitar problemas quando uma classe não pode ser processada corretamente, como acontece, por exemplo, com as classes magento1. Os comandos e argumentos podem ter sido alterados convertendo-os em comandos do console.Mas não tenho certeza de qual é seu objetivo, por isso não posso dizer se esta é uma boa solução para usar.
fonte
Report
módulo. Mas, devido ao forte acoplamento entre o módulo Relatórios e o back-end, ainda existem classes no módulo de back-end que dependem das classes do módulo de relatório. Eu encontrei uma maneira de não usá-los, mas como o comando di analisa os arquivos, ele passa pelas classes "ignoradas" e tenta criar os interceptadores. Mas isso falha porque a classe pai de,Magento\Backend\Controller\Adminhtml\Dashboard\RefreshStatistics
por exemplo, não existe. Então, eu preciso de uma maneira de excluir isso.exclude-pattern
parâmetros. Ou pelo menos eu não encontrei. Eu olhei noDiCompileCommand::configure
.