Dans Magento 2 (beta9 et supérieur), vous pouvez exécuter cette commande php bin/magento setup:di:compile
et tous les intercepteurs, usines et proxies (et peut-être d'autres) seront générés dans le var/generation
dossier pour toutes les classes que vous avez dans votre instance magento.
Ceci est utile pour les environnements en direct car sinon les classes mentionnées ci-dessus seront générées au moment de l'exécution quand elles sont nécessaires et pourraient affecter les performances.
Existe-t-il un moyen d'exclure certaines classes de ce script afin que les intercepteurs ne soient pas créés lors de l'exécution de la commande?
À titre d'exemple: je veux que le contrôleur Magento\Backend\Controller\Adminhtml\Dashboard\RefreshStatistics
ne génère pas d'intercepteurs.
la source
setup:di:compile
échoue parce que certaines classes parentes sont manquantes. Les classes qui étendent ces classes manquantes existent toujours mais elles ne sont pas utilisées par l'application. Et je ne peux pas les supprimer car ils sont dans les modules dont j'ai besoin. Voir une explication complète ci-dessous: magento.stackexchange.com/questions/69040/…Réponses:
pour exécuter à partir de cli au moins dans les versions antérieures, il y a le
exclude-pattern
paramètre. Il a été ajouté pour éviter les problèmes lorsqu'une classe ne peut pas être traitée correctement, comme cela se produit par exemple avec les classes magento1. Les commandes et les arguments peuvent avoir changé en les convertissant en commandes de console.Mais je ne sais pas quel est votre objectif, donc je ne peux pas dire si c'est une bonne solution à utiliser.
la source
Report
module. Mais en raison du couplage étroit entre le module Rapports et le module principal, il existe toujours des classes dans le module principal qui dépendent des classes du module de rapport. J'ai trouvé un moyen de ne pas les utiliser, mais comme la commande di analyse les fichiers, elle passe par les classes "ignorées" et essaie de construire les intercepteurs. Mais cela échoue car la classe parente de,Magento\Backend\Controller\Adminhtml\Dashboard\RefreshStatistics
par exemple, n'existe pas. J'ai donc besoin d'un moyen d'exclure cela.exclude-pattern
paramètre. Ou du moins je ne l'ai pas trouvé. J'ai regardéDiCompileCommand::configure
.