Documentação do Symfony - versão 3.1
Renderizada do repositório symfony-docs-pt-BR no Github
As sessões são iniciadas automaticamente quando você lê, escreve ou até mesmo verifica a existência de dados na sessão. Isso significa que se você precisa evitar a criação de um cookie de sessão para alguns usuários, pode ser difícil: você deve evitar completamente acessar a sessão.
Por exemplo, um problema comum nessa situação envolve a verificação de mensagens flash, que são armazenadas na sessão. O código a seguir garantirá que uma sessão seja sempre iniciada:
1 2 3 4 5 | {% for flashMessage in app.session.flashbag.get('notice') %}
<div class="flash-notice">
{{ flashMessage }}
</div>
{% endfor %}
|
Mesmo que o usuário não esteja logado e que você não tenha criado nenhuma mensagem flash,
apenas chamar o método get()
(ou mesmo has()
) do `` flashbag`` irá
iniciar uma sessão. Isso pode prejudicar o desempenho do aplicação, porque todos os usuários
irão receber um cookie de sessão. Para evitar esse comportamento, adicione uma verificação antes de tentar
acessar as mensagens flash:
1 2 3 4 5 6 7 | {% if app.request.hasPreviousSession %}
{% for flashMessage in app.session.flashbag.get('notice') %}
<div class="flash-notice">
{{ flashMessage }}
</div>
{% endfor %}
{% endif %}
|