Magento 2 contiene una serie de archivos de clase que se generan previamente o se generan sobre la marcha. Viven en
var/generated
Estos archivos generados incluyen clases de fábrica. De la documentación , entiendo que un programador usa clases de fábrica para crear instancias de objetos "no inyectables". Un objeto "no inyectable" es un objeto que no se puede agregar mediante __constructor
inyección de dependencia, generalmente porque requiere la entrada del usuario para crear una instancia.
Lo que no está claro en la documentación es cómo Magento 2 sabe que necesita generar una clase de fábrica. Esta parte
Si el administrador de objetos encuentra una fábrica inexistente en modo de ejecución o compilador, el administrador de objetos genera la fábrica.
suena como si uso una clase de fábrica en el administrador de objetos (o, por extensión, en la inyección de dependencia __constructores), que Magento 2 lo generará para mí. Pero, ¿cómo sabe el administrador de objetos que lo que solicito es una fábrica?
Además, parece haber dos comandos para generar automáticamente (o "compilar") todas las clases generadas. La ejecución de cualquiera de estos comandos genera una gran cantidad de clases Factory. ¿Qué archivos de configuración y / o código están buscando estos comandos para generar los objetos de fábrica necesarios?
Sé que rastrear el administrador de objetos y / o el código de comando hasta el final revelaría esto, pero espero evitar ese largo y arduo viaje.