En Magento 2 (beta9 y superior) puede ejecutar este comando php bin/magento setup:di:compile
y todos los interceptores, fábricas y proxies (y tal vez otros) se generarán en la var/generation
carpeta para todas las clases que tenga en su instancia de magento.
Esto es útil para entornos en vivo porque, de lo contrario, las clases mencionadas anteriormente se generarán en tiempo de ejecución cuando sean necesarias y podrían afectar el rendimiento.
¿Hay alguna manera de excluir algunas clases de este script para que los interceptores no se creen al ejecutar el comando?
Como ejemplo: quiero que el controlador Magento\Backend\Controller\Adminhtml\Dashboard\RefreshStatistics
no genere interceptores.
magento2-dev-beta
Marius
fuente
fuente
setup:di:compile
falla porque faltan algunas clases principales. Las clases que amplían esas clases faltantes todavía existen, pero la aplicación no las utiliza. Y no puedo eliminarlos ya que están en los módulos que necesito. Vea una explicación completa a continuación: magento.stackexchange.com/questions/69040/…Respuestas:
para ejecutar desde cli al menos en versiones anteriores existe el
exclude-pattern
parámetro Se agregó para evitar problemas cuando una clase no se puede procesar correctamente, como sucede, por ejemplo, con las clases magento1. Los comandos y argumentos pueden haber cambiado al convertirlos en comandos de consola.Pero no estoy seguro de cuál es su objetivo, por lo que no puedo decir si es una buena solución.
fuente
Report
módulo. Pero debido al estrecho acoplamiento entre los informes y el módulo de programa de fondo, todavía hay clases en el módulo de programa de fondo que dependen de las clases del módulo de informe. Encontré una manera de no usarlos, pero como el comando di analiza los archivos, pasa por las clases "ignoradas" e intenta construir los interceptores. Pero esto falla porque la clase padre de,Magento\Backend\Controller\Adminhtml\Dashboard\RefreshStatistics
por ejemplo, no existe. Entonces necesito una forma de excluir esto.exclude-pattern
param. O al menos no lo encontré. Miré enDiCompileCommand::configure
.