Magento 2 berisi sejumlah file kelas yang sudah dibuat sebelumnya, atau dibuat dengan cepat. Mereka tinggal di
var/generated
File-file yang dihasilkan ini termasuk kelas pabrik. Dari dokumentasi , saya memahami bahwa seorang programmer menggunakan kelas pabrik untuk instantiate objek "non-injeksi". Objek "non-injeksi" adalah objek yang tidak dapat ditambahkan melalui __constructor
injeksi dependensi, biasanya karena membutuhkan input pengguna untuk instantiate.
Apa yang tidak jelas dari dokumentasi adalah bagaimana Magento 2 tahu bahwa itu perlu untuk menghasilkan kelas pabrik. Ini sedikit
Jika pabrik yang tidak ada ditemui oleh manajer objek dalam mode runtime atau kompiler, manajer objek menghasilkan pabrik.
membuatnya terdengar seperti jika saya menggunakan kelas pabrik di manajer objek (atau, dengan ekstensi, dalam injeksi dependensi __constructors), bahwa Magento 2 akan menghasilkannya untuk saya. Tetapi bagaimana manajer objek tahu bahwa hal yang saya minta adalah pabrik?
Juga, tampaknya ada dua perintah untuk secara otomatis menghasilkan (atau "mengkompilasi") semua kelas yang dihasilkan. Menjalankan salah satu dari perintah ini menghasilkan sejumlah besar kelas Factory. Apa konfigurasi dan / atau file kode yang dilihat oleh perintah-perintah ini untuk menghasilkan objek pabrik yang dibutuhkan?
Saya tahu bahwa melacak manajer objek dan / atau kode perintah sepanjang jalan akan mengungkapkan ini, tapi saya berharap untuk menghindari perjalanan yang panjang dan sulit itu.