Pergunta

No Magento 2, há um conjunto de classes que são geradas automaticamente e armazenados na var/generation e eles são usados no código principal.
Ao tentar criar um módulo personalizado através da replicação de um dos módulos do core vi que também para o meu módulo existem algumas classes geradas.
Em classes geradas eu vi proxys, interceptores, fábricas....

Há uma lista completa de classes ou tipo de classes que são gerados automaticamente?
E como o lado pergunta...quando/onde eles são gerados?

Foi útil?

Solução

Existem diferentes razões para gerar diferentes entidades:

Proxy - é utilizado para carregamento lento.Mas cada tipo requer separado classe de proxy, de modo que seria chato para os desenvolvedores para escrevê-los manualmente para Magento gera-los.Yo só vai encontrar referências a Proxies em di.xml

Fábrica - é uma classe que é usado para criar não-injetáveis (entidades).Mesmo como proxies.O PHP não tem os genéricos ainda, por isso o auto-gerar fábricas não fazer programador escrever código clichê.Você irá interagir com fábricas em todo o Magento código.Provavelmente você vai precisar de suas próprias fábricas para as entidades.Basta perguntar para a correspondente fábrica no construtor e ele vai ter gerado na próxima execução ou durante o compilador executa.

Interceptor - é uma infra-estrutura de classe, que é usado por Interceptação componente.Como Flyingmana e Phil Winkle percebi que você não deve interagir com eles de qualquer maneira.

Há um monte de outras entidades gerado (como Logger para o objecto de gráfico do modo de criação de perfil), mas esses 3 são os mais importantes.

Magento 2 também pode ser compilado. Compilação faz o DI e a Intercepção mais rápido.Toda a geração de código e compilação pode ser feito com dev/tools/Magento/Tools/Di/compiler.php

Outras dicas

A partir do Conceito:

Você não precisa saber qual o tipo de classes de obter auto-gerados, como você nunca tem que tocar ou utilizá-los , nem mesmo você deve.

Eles ficam (ainda?) gerado em tempo real, mas deve, mais tarde, obter gerado através do comando cli ou similar.

A lista de quais tipos de existirem poderia crescer a qualquer tempo, quando as partes internas começar a necessidade de um novo.Mas o acesso a eles seria sempre acontecer, escondido atrás do normal documentado APIs ( comumente conhecido como chamadas de função )

Esta é a forma como o Magento gera o aspecto de uma abordagem orientada para a nova plataforma;pelo fato de gerar o antes, ao redor, e depois de "eventos" em vez de dinamicamente de despachá-los.Esta atinge um equilíbrio de conveniência para o programador e o desempenho para a plataforma.

Algumas técnicas, tais como o auto de injeção de dependência são achatadas em classes geradas em vez de executada por meio de reflexão, uma vez mais, esta é uma técnica para melhorar o desempenho.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top