Existem diferentes motivos para gerar entidades diferentes:
Proxy - é usado para carregamento lento. Mas cada tipo requer classe de proxy separada, o que seria irritante para os desenvolvedores escrevê-las manualmente, para que o Magento as gerasse. Você encontrará apenas referências a Proxies em di.xml
Fábrica - é uma classe usada para criar não-injetáveis (entidades). O mesmo que proxies. O PHP ainda não possui genéricos, portanto geramos fábricas automaticamente para não fazer o desenvolvedor escrever o código padrão. Você interagirá com as fábricas através do código Magento. Muito provavelmente você precisará de suas próprias fábricas para suas entidades. Basta solicitar a fábrica correspondente no construtor e ela será gerada na próxima execução ou durante a execução do compilador.
Interceptor - é uma classe de infraestrutura usada pelo componente Interceptação. Como Flyingmana e Phil Winkle notaram, você não deve interagir com eles de qualquer maneira.
Existem várias outras entidades geradas (como o Logger para o modo de criação de perfil de gráfico de objetos), mas essas três são as mais importantes.
O Magento 2 também pode ser compilado. A compilação torna o DI e a interceptação mais rápidos. Toda geração e compilação de código pode ser feita com dev / tools / Magento / Tools / Di / compiler.php
Magento\Cms\Block\Block
construtor, uma instância de\Magento\Cms\Model\BlockFactory
é usada. Essa classe não está em nenhum lugar do código. É encontrado apenas emvar/generation
. Portanto, se eu estiver usando um módulo semelhante, talvez seja necessário usar uma classe semelhante.