Hay diferentes razones para generar diferentes entidades:
Proxy : se utiliza para la carga diferida. Pero cada tipo requiere una clase de proxy separada, por lo que sería molesto para los desarrolladores escribirlos manualmente para que Magento los genere. Yo solo encontrará referencias a Proxies en di.xml
Factory : es una clase que se usa para crear no inyectables (entidades). Igual que los proxies. PHP aún no tiene genéricos, por lo que generamos automáticamente fábricas para que el desarrollador no escriba código repetitivo. Interactuará con fábricas a través del código de Magento. Lo más probable es que necesite sus propias fábricas para sus entidades. Simplemente solicite la fábrica correspondiente en el constructor y se generará en la próxima ejecución o durante la ejecución del compilador.
Interceptor : es una clase de infraestructura utilizada por el componente Interceptor. Como Flyingmana y Phil Winkle notaron, no debes interactuar con ellos de ninguna manera.
Hay un montón de otras entidades generadas (como Logger para el modo de perfil de gráfico de objetos) pero estas 3 son las más importantes.
Magento 2 también se puede compilar. La compilación hace que la DI y la intercepción sean más rápidas. Toda la generación y compilación de código se puede hacer con dev / tools / Magento / Tools / Di / compiler.php
Magento\Cms\Block\Block
en el constructor\Magento\Cms\Model\BlockFactory
se usa una instancia de . Esa clase no está en ninguna parte del código. Se encuentra solo envar/generation
. Entonces, si estoy haciendo un módulo similar, podría tener que usar una clase similar.Así es como Magento genera el enfoque orientado a aspectos de la nueva plataforma; generando los "eventos" antes, alrededor y después en lugar de distribuirlos dinámicamente. Esto logra un equilibrio de conveniencia para el programador y el rendimiento de la plataforma.
Algunas técnicas, como la inyección de autodependencia, se aplanan en las clases generadas en lugar de ejecutarse mediante reflexión, una vez más, esta es una técnica para mejorar el rendimiento.
fuente