调用时bin/magento static-content:deploy
被调用:
\Magento\Deploy\Console\Command\DeployStaticContentCommand::execute()
该方法调用
$deployer = $this->objectManager->create(
'Magento\Deploy\Model\Deployer',
['filesUtil' => $filesUtil, 'output' => $output, 'isDryRun' => $options[self::DRY_RUN_OPTION]]
);
$deployer->deploy($this->objectManagerFactory, $languages);
转换为\Magento\Deploy\Model\Deployer::deploy
。在此方法的底部,您会发现
foreach ($this->filesUtil->getPhtmlFiles(false, false) as $template) {
$this->htmlMinifier->minify($template);
if ($this->output->getVerbosity() >= OutputInterface::VERBOSITY_VERBOSE) {
$this->output->writeln($template . " minified\n");
} else {
$this->output->write('.');
}
$this->count++;
}
如果需要,您可以更深入\Magento\Framework\App\Utility::getPhtmlFiles
地了解如何检索模板。
短版:
调用accumulateModuleTemplateFiles
并accumulateThemeTemplateFiles
来自同一类。这些方法使用(最后)glob
和一些正则表达式从模块和主题中检索所有模板文件,并且最小化是由\Magento\Framework\View\Template\Html\Minifier
(实现\Magento\Framework\View\Template\Html\MinifierInterface
)基于一些奇怪的正则表达式完成的。(请参见minify
方法)。
我还不知道的事情是,如何加载这些模板以供使用。它们很可能是由模板引擎加载的。如果/当我找到时,我会发回这里。
[编辑]
我发现使用缩小的模板时。当您设置的值Store->Configuration->Developer->Template Settings->Minify HTML
,以Yes
当生产模式。