Как получить доступ к пользователю, запросу, сессии и др. в Twig через переменную app

Как получить доступ к пользователю, запросу, сессии и др. в Twig через переменную app

Во время каждого запроса, Symfony будет устанавливать глобальную переменную шаблона app как в Twig, так и в PHP механизме шаблона по умолчанию. Переменна app - это экземпляр AppVariable, который будет давать вам доступ к некоторым особенным переменным приложения автоматически:

app.user
Представление текущего пользователя или null при его отсутствии. Значение, хранящееся в этой переменной может быть объектом UserInterface, любым другим объектом, реализующим метод __toString(), или даже обычной строкой.
app.request
Объект Request, который представляет текущий запрос (в зависимости от вашего приложения, это может быть под-запросом или обычным запросом, как будет объясняться позже).
app.session
Объект Session, который представляет сессию текущего пользователя или null, при её отсутствии.
app.environment
Имя текущего окружения (dev, prod, и т.д.).
app.debug
"True" (верно) в режиме отладки. "False" (неверно) в других случаях.
  • 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

Вы можете добавлять ваши собственные глобальные переменные шаблонов, смотрите How to Inject Variables into all Templates (i.e. global Variables).

Эта документация является переводом официальной документации Symfony и предоставляется по свободной лицензии CC BY-SA 3.0.