Pregunta

En Magento 2 Hay un conjunto de clases que se generan automáticamente y se almacenan en var/generation y se utilizan en el código central.
Mientras intenta crear un módulo personalizado replicando uno de los módulos básicos, vi que también para mi módulo hay algunas clases generadas.
En las clases generadas, he visto proxys, interceptores, fábricas ...

¿Hay una lista completa de clases o tipo de clases que se generan automáticamente? Y como pregunta del lado ... ¿Cuándo / dónde se generan?

¿Fue útil?

Solución

Hay diferentes razones para generar diferentes entidades:

proxy - Se usa para la carga perezosa. Pero cada tipo requiere una clase de proxy separada, por lo que sería molesto para que los desarrolladores los escriban manualmente, así que Magento los genera. Yo solo encontrará referencias a los proxies en di.xml

fábrica - es una clase que se usa para crear no inyectables (entidades). Igual que las proxies. PHP todavía no tiene genéricos, por lo que generamos automáticamente las fábricas para no hacer que el código de la placa de calderas de escritura de desarrolladores. Interactuarás con fábricas en el código de Magento. Lo más probable es que necesite sus propias fábricas para sus entidades. Solo solicite la fábrica correspondiente en constructor y se generará en la siguiente ejecución o durante la ejecución del compilador.

interceptor - es una clase de infraestructura, que se usa por componente de intercepción. Cuando Flyingmana y Phil Winkle notaron, no debes interactuar con ellos de todos modos.

Hay un montón de otras entidades generadas (como el registrador del modo de perfilado del gráfico de objetos), pero estos 3 son los más importantes.

Magento 2 también puede ser compilado. la compilación hace que DI y la intercepción sea más rápida. Todas las generaciones y compilación del código se pueden realizar con dev / herramientas / magento / herramientas / di / compiler.php

Otros consejos

del concepto:

No necesita saber qué tipo de clases se generan automáticamente, ya que nunca tiene que tocarlo o usarlas, ni siquiera debe.

¡Se obtienen (todavía?) Generados sobre la marcha, pero más tarde deberían generarse a través del comando CLI o similar.

La lista que existen tipos podría crecer en cualquier momento, cuando las partes internas obtengan la necesidad de una nueva.Pero el acceso a ellos siempre sucedería oculto detrás de las API documentadas normales (comúnmente conocidas como llamadas de función)

Así es como Magento genera el enfoque orientado a los aspectos a la nueva plataforma;Al generar realmente el antes, alrededor, y después de "eventos" en lugar de enviarlos dinámicamente.Esto golpea un equilibrio de conveniencia al programador y el rendimiento de la plataforma.

Algunas técnicas como la inyección de dependencia automática se aplanan en las clases generadas en lugar de ejecutadas a través de la reflexión, nuevamente, esta es una técnica para mejorar el rendimiento.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top