@@ -81,3 +81,56 @@ called ``sidebar.twig`` in that directory, you can use it easily:
81
81
.. code-block :: jinja
82
82
83
83
{% include '@foo_bar/sidebar.twig' %}
84
+
85
+ Multiple paths per namespace
86
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
87
+
88
+ You can also assign several paths to the same template namespace. The order in
89
+ which paths are configured is very important, because Twig will always load
90
+ the first template that exists, starting from the first configured path. This
91
+ feature can be used as a fallback mechanism to load generic templates when the
92
+ specific template doesn't exist.
93
+
94
+ .. code-block :: yaml
95
+
96
+ # app/config/config.yml
97
+ twig :
98
+ # ...
99
+ paths :
100
+ " %kernel.root_dir%/../vendor/acme/themes/theme1 " : theme
101
+ " %kernel.root_dir%/../vendor/acme/themes/theme2 " : theme
102
+ " %kernel.root_dir%/../vendor/acme/themes/common " : theme
103
+
104
+ .. code-block :: xml
105
+
106
+ <!-- app/config/config.xml -->
107
+ <?xml version =" 1.0" ?>
108
+ <container xmlns =" http://symfony.com/schema/dic/services"
109
+ xmlns : xsi =" http://www.w3.org/2001/XMLSchema-instance"
110
+ xmlns : twig =" http://symfony.com/schema/dic/twig"
111
+ >
112
+
113
+ <twig : config debug =" %kernel.debug%" strict-variables =" %kernel.debug%" >
114
+ <twig : path namespace =" theme" >%kernel.root_dir%/../vendor/acme/themes/theme1</twig : path >
115
+ <twig : path namespace =" theme" >%kernel.root_dir%/../vendor/acme/themes/theme2</twig : path >
116
+ <twig : path namespace =" theme" >%kernel.root_dir%/../vendor/acme/themes/common</twig : path >
117
+ </twig : config >
118
+ </container >
119
+
120
+ .. code-block :: php
121
+
122
+ // app/config/config.php
123
+ $container->loadFromExtension('twig', array(
124
+ 'paths' => array(
125
+ '%kernel.root_dir%/../vendor/acme/themes/theme1' => 'theme',
126
+ '%kernel.root_dir%/../vendor/acme/themes/theme2' => 'theme',
127
+ '%kernel.root_dir%/../vendor/acme/themes/common' => 'theme',
128
+ );
129
+ ));
130
+
131
+ Now you can use the same ``@theme `` namespace to refer to any template located
132
+ in the previous three directories:
133
+
134
+ .. code-block :: jinja
135
+
136
+ {% include '@theme/header.twig' %}
0 commit comments