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.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 ?>
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.