Magento 2 zawiera wiele plików klas, które są wstępnie generowane lub generowane w locie. Oni żyją w
var/generated
Wygenerowane pliki obejmują klasy fabryczne. Z dokumentacji rozumiem, że programista używa klas fabrycznych do tworzenia obiektów „niewtryskiwalnych”. Obiekt „nienadający się do wstrzyknięcia” to obiekt, którego nie można dodać za pomocą __constructor
wstrzykiwania zależności, zwykle dlatego, że wymaga on danych wejściowych użytkownika do utworzenia wystąpienia.
Z dokumentacji nie wynika jasno, skąd Magento 2 wie, że musi wygenerować klasę fabryczną. Ten kawałek
Jeśli menedżer obiektów w trybie wykonawczym lub kompilatorze napotka nieistniejącą fabrykę, menedżer obiektów wygeneruje fabrykę.
wygląda na to, że jeśli użyję klasy fabrycznej w menedżerze obiektów (lub, co za tym idzie, we wstrzykiwaniu zależności __konstruktorów), Magento 2 wygeneruje ją dla mnie. Ale skąd menedżer obiektów wie, że to, o co proszę, to fabryka?
Wydaje się również, że istnieją dwa polecenia do automatycznego generowania (lub „kompilowania”) wszystkich generowanych klas. Uruchomienie jednego z tych poleceń generuje dużą liczbę klas Factory. Jakich plików konfiguracyjnych i / lub kodowych oczekują te polecenia, aby wygenerować potrzebne obiekty fabryczne?
Wiem, że śledzenie menedżera obiektów i / lub kodu poleceń do końca ujawniłoby to, ale mam nadzieję uniknąć tej długiej i żmudnej podróży.