如何为Twig模板指定两个位置


How do I specify two locations for Twig templates?

我为每个组件(即页面)构建了一个单独的目录。

/var/www/components/component_1/
/var/www/components/component_2/
/var/www/components/component_3/

在每个目录中,我都有一个控制器、一个模型和一个Twig模板。可能位于/var/www/components/component_2/templates/myTemp.html的典型模板如下所示:

{% extends "base.html" %}
bla bla bla

我有几个基本模板。与子模板不同,我希望这些模板位于/var/www/templates/

在扩展Twig模板时,如何指定两个位置?

看看Twig Loader文件系统http://twig.sensiolabs.org/doc/api.html#twig-加载器文件系统

所以可以做一些类似的事情:

$loader = new Twig_Loader_Filesystem(array('/var/www/components/component_1/templates', '/var/www/templates'));
$twig = new Twig_Environment($loader);
echo $twig->render('Hello {{ name }}!', array('name' => 'Fabien'));