logo

Dodatni tipovi blokova (EBT) - Novo iskustvo rada sa Layout Builder-om❗

Dodatni tipovi blokova (EBT) – stilizovani, prilagodljivi tipovi blokova: slajdšouvi, kartice sa tabovima, kartice, akordeoni i mnogi drugi. Ugrađena podešavanja za pozadinu, DOM Box, javascript dodatke. Iskusite budućnost kreiranja rasporeda već danas.

Demo EBT moduli Preuzmite EBT module

❗Dodatni tipovi pasusa (EPT) – Novo iskustvo rada sa pasusima

Dodatni tipovi pasusa (EPT) – analogni skup modula zasnovan na pasusima.

Demo EPT moduli Preuzmite EPT module

Scroll

Otkrivanje i provera promenljivih u Twig šablonima

19/06/2025, by Ivan

Prilikom rada sa Twig šablonskim fajlom, većina promenljivih je dokumentovana u komentarima u fajlu šablona. Međutim, kada to nije slučaj, ili kada teme ili moduli uvode nove promenljive, potreban nam je način da otkrijemo sve promenljive dostupne u okviru šablona. Twig pruža funkciju dump() za otkrivanje i proveru promenljivih u šablonskim fajlovima.

Funkcija dump() neće prikazati izlaz ako debagovanje nije uključeno. Saznajte kako da uključite Twig debagovanje.

Nakon što uključite debagovanje, funkcija dump() može se koristiti za prikaz informacija o jednoj ili više promenljivih u šablonu.

Provera jedne promenljive

Ako u vašem šablonu postoji promenljiva title, sledeće će prikazati njen sadržaj u šablonu:

{{ dump(title) }}

Otkrivanje svih dostupnih promenljivih u šablonu

Da biste prikazali sve dostupne promenljive i njihov sadržaj u šablonu, dodajte sledeće u šablon (nakon uključivanja debaga):

{{ dump() }}

Da biste prikazali samo ključeve dostupnih promenljivih, koristite:

{{ dump(_context|keys) }}

U svim Twig šablonima dostupne su dodatne globalne promenljive:

  • _self se odnosi na trenutni šablon i sadrži proširene informacije o šablonu, kao što su ime klase kompajliranog šablona i informacije o Twig okruženju. _self je zastareo i uklonjen od Twig verzije 2.x.
  • _context se odnosi na trenutni kontekst i sadrži sve promenljive prosleđene šablonu, kao što su promenljive poslati iz theme(), pripremljene u preprocess funkcijama ili postavljene u šablonu. Dodavanje {{ dump() }} bez argumenta je ekvivalentno {{ dump(_context) }}.
  • _charset se odnosi na trenutni skup karaktera.

Budite oprezni sa dump()

Ako želite da vidite sve promenljive, ali dump() izaziva grešku usled prevelike rekurzije ili problema sa memorijom, možete pregledati _context da biste videli sve ključeve u njemu:

<ol>
  {% for key, value in _context  %}
    <li>{{ key }}</li>
  {% endfor %}
</ol>

Zatim možete koristiti uslovnu proveru (npr. {% if loop.index == 2 %}) i prikazati vrednost samo kada je potrebno.

Više informacija

Pogledajte Twig dokumentaciju za funkciju dump za dodatne informacije o funkciji dump.

Debagovanje pomoću Xdebug-a

Najčešće preporučen način debagovanja je korišćenje IDE-a sa Xdebug pluginom.

Najjednostavnija konfiguracija za podešavanje je korišćenje PHPStorm-a (komercijalni proizvod) sa Xdebug-om. Microsoft VSCode je besplatan i open-source IDE sa pluginovima koji rade isto, a ne zahtevaju kupovinu komercijalnog softvera.

Korišćenje Xdebug-a omogućava vam da pratite izvršavanje koda, pregledate sadržaj promenljivih i to uradite na način koji uklanja nedoumice i sprečava beskonačne petlje koje mogu nastati pri korišćenju dump ili kint.

Mali korisni modul pod nazivom twig_xdebug može pomoći pri prikazu dostupnih promenljivih u Xdebug sesiji.

Debagovanje pomoću kint

Funkcija dump() u Twig-u često ispisuje mnogo teksta na web stranici, što otežava pronalaženje važnih informacija u gomili podataka.

Alternativa dump() je kint, PHP alat za debagovanje. Funkcija kint() radi isto kao dump(), ali pruža proširivi i lako pregledni interfejs za prikaz promenljivih.

Devel projekat pruža modul devel kint, koji omogućava programerima da koriste kint() umesto dump().

1. Preuzmite devel modul.
2. Instalirajte modul „devel kint“.
3. Kao i dump(), kint() neće prikazati izlaz ako debagovanje nije uključeno. Saznajte kako uključiti Twig debagovanje.
4. U vašim .twig fajlovima koristite kint() za proveru promenljivih, isto kao što biste koristili dump().
5. Po potrebi instalirajte i koristite Search Kint modul za pretraživanje liste ugnježdenih promenljivih.

Whitelist politika metoda i klasa

Kada radite sa objektima, pravimo whitelist poziva određenih metoda za dobijanje i postavljanje ili objekata putem TwigSandboxPolicy klase. Ovo je urađeno da se spreči pozivanje nasumičnih metoda u vašim šablonima. Na primer: {{ node.delete }} na objektu čvora može obrisati čvor ako whitelist nije podešen. Možete proširiti ovu whitelist dodavanjem sledećeg u vaš settings.php fajl:

$settings['twig_sandbox_whitelisted_methods'] = [
  'id',
  'label',
  'bundle',
  'get',
  '__toString',
  'toString',
  'referencedEntities',
];

Gde je 'referencedEntities' metod koji želite da koristite u vašem šablonu.