Magento 2 contiene numerosi file di classe pre-generati o generati al volo. Loro vivono in
var/generated
Questi file generati includono le classi di fabbrica. Dalla documentazione , ho capito che un programmatore utilizza le classi di fabbrica per istanziare oggetti "non iniettabili". Un oggetto "non iniettabile" è un oggetto che non può essere aggiunto tramite l' __constructor
iniezione di dipendenza, di solito perché richiede l'input dell'utente per istanziare.
Ciò che non è chiaro dalla documentazione è come Magento 2 sappia che deve generare una classe di fabbrica. Questo bit
Se viene rilevato un factory inesistente dal gestore oggetti in modalità runtime o compilatore, il gestore oggetti genera il factory.
sembra che se uso una classe factory nel gestore degli oggetti (o, per estensione, nell'iniezione di dipendenza __costructors), Magento 2 lo genererà per me. Ma come fa il gestore degli oggetti a sapere che la cosa che sto richiedendo è una fabbrica?
Inoltre, sembrano esserci due comandi per generare automaticamente (o "compilare") tutte le classi generate. L'esecuzione di uno di questi comandi genera un gran numero di classi Factory. Quali file di configurazione e / o di codice vengono visualizzati da questi comandi per generare gli oggetti factory necessari?
So che rintracciare il gestore degli oggetti e / o il codice comando fino in fondo lo rivelerebbe, ma spero di evitare quel lungo e arduo viaggio.