正如我在How can I minify HTML with Twig?上看到的
建议使用https://github.com/nochso/html-compress-twig缩小从Twig模板生成的html。
但在文档中,它没有显示使用Symfony加载的方法。你们知道如何在Symfony中使用它吗?
据它所说:
$twig = new Twig_Environment($loader);
$twig->addExtension(new \nochso\HtmlCompressTwig\Extension());但是在Symfony上,我如何获得现有的Twig_Environment,以及将扩展初始化放在哪里?
发布于 2018-01-16 18:45:37
安装后,尝试将其注册为服务:
services:
nochso\HtmlCompressTwig\Extension
tags:
- { name: twig.extension }发布于 2018-04-19 18:54:04
例如,您的src/Controller目录中有BaseController。
控制器应该从控制器类的Controller
中使用此方法
class BaseController extends Controller {
protected function render($view, array $parameters = array(), Response $response = null)
{
if ($this->container->has('templating')) {
$content = $this->container->get('templating')->render($view, $parameters);
} elseif ($this->container->has('twig')) {
$content = $this->container->get('twig')->render($view, $parameters);
} else {
throw new \LogicException('You can not use the "render" method if the Templating Component or the Twig Bundle are not available. Try running "composer require symfony/twig-bundle".');
}
if (null === $response) {
$response = new Response();
}
$content = preg_replace(array('/<!--(.*)-->/Uis',"/[[:blank:]]+/"),array('',' '),str_replace(array("\n","\r","\t"),'',$content));
$response->setContent($content);
return $response;
}
}您还可以在其他控制器中扩展BaseController。
https://stackoverflow.com/questions/47458058
复制相似问题