symfony_black_02

Symfony2 Zmienne globalne w plikach TWIG

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 %}

3 myśli nt. „Symfony2 Zmienne globalne w plikach TWIG

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>