J'ai travaillé sur un projet avec du code personnalisé ... c'est notre premier projet Magento 2 "moyen", donc (comme tout le monde ici je pense) chaque jour nous apprenons de nouvelles choses, et nous devons changer la façon de traiter avec cette nouvelle version de Magento
La raison de cette question concerne la commande setup:di:compile
Je l'utilise depuis le premier jour avec Magento 2, comme bin / magento le demande après chaque setup:upgrade
, avec le message "Veuillez réexécuter la commande de compilation Magento"
Eh bien ... J'ai trouvé l'exécution de setup:di:compile
la page de visualisation du produit des pauses dans ce projet, avec une erreur fatale totalement ambiguë. J'ai passé des journées entières à essayer de le déboguer et à tester avec des modifications de code avec un résultat nul
Aujourd'hui, j'ai découvert que si j'omet cette commande, alors tout fonctionne comme un charme, même en mode production
Alors, la question est ... qu'est-ce que cette setup:di:compile
commande exactement ? Est-ce obligatoire? Juste recommandé? Ou c'est une commande obsolète, qui n'est pas nécessaire pour être exécutée?
MISE À JOUR
Comme certains utilisateurs l'ont demandé, il s'agit de l'erreur fatale à laquelle je faisais référence
Erreur fatale PHP: Impossible d'instancier la classe abstraite Magento \ Catalog \ Block \ Product \ View \ AbstractView dans *** / vendor / magento / framework / ObjectManager / Factory / AbstractFactory.php sur la ligne 93
J'ai recherché un bloc personnalisé à l'aide de Magento \ Catalog \ Block \ Product \ View \ AbstractView, mais je ne l'ai trouvé que dans les fichiers de disposition, il n'est présent dans aucun constructeur de classe de bloc
Ce que je ne peux pas comprendre, c'est: pourquoi Magento lance cette erreur fatale avec du code compilé, mais cela fonctionne comme un charme sans code compilé