JednÄ? przydatnÄ? rzeczÄ? przy tworzeniu widoku naszej aplikacji we frameworku symfony2, sÄ? zmienne globalne dostÄ?pne w TWIG’u.
PrzydajÄ? siÄ? one do wy??wetlania:
- aktualnie zalogowanego u??ytkownika
- aktualnie u??ytego modu??u
- aktualnie u??ytego nazwy routingu
- pobrania zmiennej z sesji
- pobranie baseURL() strony
I wielu wielu innych.
Typ | Funkcja w kontrolerze | Funkcja w Twigu |
---|---|---|
Symfony\Component\Security\Core\SecurityContext|void | getSecurity() | app.security | Symfony\Component\Security\Core\User\(Advanced)UserInterface | getUser() | app.user | Symfony\Component\HttpFoundation\Request|void | getRequest() | app.request | Symfony\Component\HttpFoundation\Session|void | getSession() | app.session | string | getEnvironment() | app.environment | bool | getDebug() | app.debug |
Przyk??ad #1
Formularz wysy??any poza symfony ale na ten sam serwer
<form action="{{ app.request.getHttpHost() }}/moj/zdalnyplik.php">
...
</form>
Przyk??ad #2
Wy??wietlamy nazwÄ? aktualnie zalogowanego u??ytkownika
<div id="top">
{{ 'Jeste?? zalogowany jako: %username%'|trans({'%username%': app.user}) }}
</div>
Przyk??ad #3
Wy??wietlamy nazwÄ? aktualnie u??ywanego routingu
{{ app.request.get('_route')|default('homepage') }}
Przyk??ad #4
Na stronie ??adujÄ? siÄ? du??e zewnÄ?trzne JavaScripty z zewnÄ?trznych system??w statystyk. ChcÄ? dla w??asnej wygody wiÄ?cej ich nie ??adowaÄ? w ??rodowisku „dev”
{% if app.environment != 'dev' %}
<script src="http://blahblahblah.com/script.js"></script>
{% endif %}
Przyk??ad #5
Wy??wietliÄ? aktualnÄ? wersje jÄ?zykowÄ? strony
W Symfony2.3 locale zosta??y przeniesione z Request do Session
{# 2.3 version #}
{% if app.session.locale =='pl' %}
Polski
{% else %}
Rumu??ski
{% endif %}
{# 2.2 version #}
{% if app.request.locale =='pl' %}
Polski
{% else %}
Rumu??ski
{% endif %}
Mo??e opisz jeszcze jak dodawaÄ? w??asne zmienne globalne ?
DorzucÄ? update posta w wolnej chwili
przyklad #2 dla symfony 2.2 to app.user.username , nie app.user