Magento 2 contient un certain nombre de fichiers de classe pré-générés ou générés à la volée. Ils vivent dans
var/generated
Ces fichiers générés incluent les classes d'usine. D'après ma documentation , un programmeur utilise des classes d'usine pour instancier des objets "non injectables". Un objet "non injectable" est un objet qui ne peut pas être ajouté via __constructor
une injection de dépendance, généralement parce qu'il nécessite une entrée utilisateur pour instancier.
Ce qui n’est pas clair dans la documentation, c’est que Magento 2 sait qu’il doit générer une classe fabrique. Ce bit
Si le gestionnaire d’objets rencontre une fabrique inexistante en mode d’exécution ou un compilateur, le gestionnaire d’objets génère la fabrique.
donne l'impression que, si j'utilise une classe de fabrique dans le gestionnaire d'objets (ou, par extension, dans les dépendances d'injection de dépendances __), Magento 2 le générera pour moi. Mais comment le gestionnaire d'objets sait-il que ce que je demande est une usine?
En outre, il semble y avoir deux commandes pour générer automatiquement (ou "compiler") toutes les classes générées. L'exécution de l'une de ces commandes génère un grand nombre de classes Factory. Quels sont les fichiers de configuration et / ou de code utilisés par ces commandes pour générer les objets d'usine nécessaires?
Je sais que le traçage du gestionnaire d’objets et / ou du code de commande jusqu’au bout l’indiquerait, mais j’espère pouvoir éviter ce long et pénible voyage.