La parte más importante del sistema de plantillas en Symfony2 es el engine
o motor de plantillas. Este objeto especial se encarga de renderizar las plantillas y devolver su contenido. Cuando renderizas por ejemplo una plantilla en un controlador, en realidad estás usando el motor del servicio de plantillas:
return $this->render('AcmeArticleBundle:Article:index.html.twig');
La instrucción anterior es equivalente a:
$engine = $this->container->get('templating');
$content = $engine->render('AcmeArticleBundle:Article:index.html.twig');
return $response = new Response($content);
El motor o servicio de plantillas está preconfigurado para funcionar dentro de una aplicación Symfony2. Todas sus opciones de configuración se pueden modificar directamente en el archivo config.yml
de la aplicación:
# app/config/config.yml
framework:
# ...
templating: { engines: ['twig'] }
<!-- app/config/config.xml -->
<framework:templating>
<framework:engine id="twig" />
</framework:templating>
// app/config/config.php
$container->loadFromExtension('framework', array(
...,
'templating' => array(
'engines' => array('twig'),
),
));
Nota El motor de plantillas twig
es obligatorio si utilizas el profiler y la barra de depuración web de Symfony (así como muchos otros bundles desarrollados por terceros).