You are browsing the documentation for Symfony 2.7 which is not maintained anymore.
Consider upgrading your projects to Symfony 5.2.
How to Access the User, Request, Session & more in Twig via the app
Variable
How to Access the User, Request, Session & more in Twig via the app
Variable¶
During each request, Symfony will set a global template variable app
in both Twig and PHP template engines by default. The app
variable
is a Symfony\Bridge\Twig\AppVariable
instance which will give you access to some application specific variables
automatically:
app.security
(deprecated as of 2.6)- The
Symfony\Component\Security\Core\SecurityContext
object ornull
if there is none. app.user
- The representation of the current user or
null
if there is none. The value stored in this variable can be aSymfony\Component\Security\Core\User\UserInterface
object, any other object which implements a__toString()
method or even a regular string. app.request
- The
Symfony\Component\HttpFoundation\Request
object that represents the current request (depending on your application, this can be a sub-request or a regular request, as explained later). app.session
- The
Symfony\Component\HttpFoundation\Session\Session
object that represents the current user’s session ornull
if there is none. app.environment
- The name of the current environment (
dev
,prod
, etc). app.debug
- True if in debug mode. False otherwise.
- Twig
1 2 3 4 5
<p>Username: {{ app.user.username }}</p> {% if app.debug %} <p>Request method: {{ app.request.method }}</p> <p>Application Environment: {{ app.environment }}</p> {% endif %}
- PHP
1 2 3 4 5
<p>Username: <?php echo $app->getUser()->getUsername() ?></p> <?php if ($app->getDebug()): ?> <p>Request method: <?php echo $app->getRequest()->getMethod() ?></p> <p>Application Environment: <?php echo $app->getEnvironment() ?></p> <?php endif ?>
New in version 2.6: The global app.security
variable (or the $app->getSecurity()
method in PHP templates) is deprecated as of Symfony 2.6. Use app.user
($app->getUser()
) and is_granted()
($view['security']->isGranted()
)
instead.
Tip
You can add your own global template variables, see How to Inject Variables into all Templates (i.e. global Variables).
This work, including the code samples, is licensed under a Creative Commons BY-SA 3.0 license.