Eu vejo muitos arquivos phtml gerados var/view_preprocessed/html
, a partir de módulos principais e também de módulos personalizados. Parece que todos esses modelos são usados com espaço em branco removido.
Alan Kent escreveu em Como atualizo os arquivos phpml do Magento 2 no Grunt? :
Você não "implanta" arquivos PHTML. Eles são referenciados por blocos nos arquivos de layout e processados no lado do servidor. Portanto, "grunhido" não é relevante aqui e a implantação de conteúdo estático também não é relevante.
E, ao analisar a implantação de conteúdo estático e o fluxo de trabalho pesado, não encontrei nada relacionado a modelos, então acho que isso ainda é verdade.
Mas quando esses arquivos são gerados? E o que realmente está acontecendo lá e por quê?
fonte
Respostas:
Ao chamar
bin/magento static-content:deploy
isso é chamado:\Magento\Deploy\Console\Command\DeployStaticContentCommand::execute()
Este método chama
que se traduz em
\Magento\Deploy\Model\Deployer::deploy
. No final deste método, você encontraráSe você quiser, pode se aprofundar
\Magento\Framework\App\Utility::getPhtmlFiles
para ver como os modelos são recuperados.Versão curta:
Chama
accumulateModuleTemplateFiles
eaccumulateThemeTemplateFiles
da mesma classe. Esses métodos estão usando (no final)glob
e algumas expressões regulares para recuperar todos os arquivos de modelo dos módulos e dos temas e a minificação é feita por\Magento\Framework\View\Template\Html\Minifier
(que implementa\Magento\Framework\View\Template\Html\MinifierInterface
) com base em algumas expressões regulares estranhas. (veja ominify
método).O que eu ainda não sei é como esses modelos são carregados para uso. provavelmente eles são carregados pelo mecanismo de modelo. Vou postar aqui se / quando eu encontrar isso.
[EDIT]
Encontrei quando os modelos minificados são usados. Quando você definir o valor para
Store->Configuration->Developer->Template Settings->Minify HTML
aYes
e quando em modo de produção.fonte
Store->Configuration->Developer->Template Settings->Minify HTML
ele ainda não está carregando o HTML Minificado. Existe algo que possa estar bloqueando isso? Isso funciona apenas no modo de produção?