มีเหตุผลที่แตกต่างกันในการสร้างเอนทิตีที่แตกต่างกัน:
พร็อกซี - มันใช้สำหรับการโหลดขี้เกียจ แต่แต่ละประเภทต้องการคลาสพร็อกซีแยกต่างหากซึ่งน่ารำคาญสำหรับนักพัฒนาที่จะเขียนด้วยตนเองดังนั้นวีโอไอพีจึงสร้างขึ้นมา Yo จะค้นหาการอ้างอิงถึง Proxies ใน di.xml เท่านั้น
Factory - เป็นคลาสที่ใช้สร้าง non-injectables (เอนทิตี) เหมือนกับผู้รับมอบฉันทะ PHP ยังไม่มีข้อมูลทั่วไปดังนั้นเราจึงสร้างโรงงานโดยอัตโนมัติเพื่อไม่ให้นักพัฒนาเขียนโค้ดสำเร็จรูป คุณจะโต้ตอบกับโรงงานข้ามรหัสวีโอไอพี ส่วนใหญ่คุณจะต้องใช้โรงงานของคุณเองสำหรับหน่วยงานของคุณ เพียงแค่ขอให้โรงงานที่สอดคล้องกันในตัวสร้างและมันจะได้รับการสร้างในการเรียกใช้ต่อไปหรือในระหว่างการเรียกใช้คอมไพเลอร์
Interceptor - เป็นคลาสโครงสร้างพื้นฐานที่ใช้โดยองค์ประกอบการสกัดกั้น อย่างที่ Flyingmana และ Phil Winkle สังเกตว่าคุณไม่ควรมีปฏิสัมพันธ์กับพวกเขา แต่อย่างใด
มีเอนทิตีอื่น ๆ ที่สร้างขึ้น (เช่น Logger สำหรับโหมดการทำโปรไฟล์กราฟวัตถุ) แต่สิ่งเหล่านี้สำคัญที่สุด
Magento 2 ยังสามารถรวบรวมได้ การรวบรวมทำให้ DI และการสกัดกั้นเร็วขึ้น การสร้างรหัสและการรวบรวมทั้งหมดสามารถทำได้ด้วย dev / tools / Magento / Tools / Di / compiler.php
Magento\Cms\Block\Block
ในตัวสร้างตัวอย่างของการ\Magento\Cms\Model\BlockFactory
ถูกนำมาใช้ คลาสนั้นไม่มีอยู่ในรหัสvar/generation
มันเป็นเรื่องที่พบได้เฉพาะใน ดังนั้นถ้าฉันทำโมดูลที่คล้ายกันฉันอาจต้องใช้คลาสที่คล้ายกัน