Table of Contents
Questions & Feedback
Found a typo or an error?
Want to improve this document? Edit it.
Need support or have a technical question?
Post to the user mailing-list.
Master Symfony2 fundamentals
Symfony hosting done right
Discover the SensioLabs Support
How to Inject Variables into all Templates (i.e. Global Variables)
How to Inject Variables into all Templates (i.e. Global Variables)¶
Sometimes you want a variable to be accessible to all the templates you use.
This is possible inside your app/config/config.yml file:
- YAML
1 2 3 4 5
# app/config/config.yml twig: # ... globals: ga_tracking: UA-xxxxx-x
- XML
<!-- app/config/config.xml --> <twig:config ...> <!-- ... --> <twig:global key="ga_tracking">UA-xxxxx-x</twig:global> </twig:config> - PHP
1 2 3 4 5 6 7
// app/config/config.php $container->loadFromExtension('twig', array( // ... 'globals' => array( 'ga_tracking' => 'UA-xxxxx-x', ), ));
Now, the variable ga_tracking is available in all Twig templates:
1 | <p>The google tracking code is: {{ ga_tracking }}</p>
|
It's that easy! You can also take advantage of the built-in Service Parameters system, which lets you isolate or reuse the value:
1 2 3 | # app/config/parameters.yml
parameters:
ga_tracking: UA-xxxxx-x
|
- YAML
1 2 3 4
# app/config/config.yml twig: globals: ga_tracking: "%ga_tracking%"
- XML
<!-- app/config/config.xml --> <twig:config ...> <twig:global key="ga_tracking">%ga_tracking%</twig:global> </twig:config> - PHP
1 2 3 4 5 6
// app/config/config.php $container->loadFromExtension('twig', array( 'globals' => array( 'ga_tracking' => '%ga_tracking%', ), ));
The same variable is available exactly as before.
More Complex Global Variables¶
If the global variable you want to set is more complicated - say an object -
then you won't be able to use the above method. Instead, you'll need to create
a Twig Extension and return the
global variable as one of the entries in the getGlobals method.





is a trademark of Fabien Potencier. All rights reserved.