如何配置和使用模板服务
Symfony模板系统的核心是模板化Engine
。这个特殊的对象负责渲染模板并返回它们正确的内容。当你在控制器中渲染一个模板时,其实你是使用了模板引擎服务。例如:
1 |
return $this->render('article/index.HTML.twig'); |
相当于
1 2 3 4 5 6 |
use Symfony\Component\Httpfoundation\Response;
$engine = $this->container->get('templating');
$content = $engine->render('article/index.html.twig');
return $response = new Response($content); |
该模板引擎(服务)在Symfony内部是预先配置好,自动工作的。当然,它也可以在程序的配置文件中进行配置。
1 2 3 4 |
# app/config/config.yml
framework:
# ...
templating: { engines: ['twig'] } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<!-- app/config/config.xml -->
<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:framework="http://symfony.com/schema/dic/symfony"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
http://symfony.com/schema/dic/symfony http://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
<!-- ... -->
<framework:config>
<framework:templating>
<framework:engine>twig</framework:engine>
</framework:templating>
</framework:config>
</container> |
1 2 3 4 5 6 7 8 |
// app/config/config.php
$container->loadFromExtension('framework', array(
// ...
'templating' => array(
'engines' => array('twig'),
),
)); |
还有几个配置选项是可用的,都包含在配置附录。
twig
强制使用webprofiler(以及许多第三方包)。