SyMfonAK - vyvíjame databázy pomocou frameworku Symfony
Symfony šablóny (templates)
Symfony dokumentácia - hlavná stránka → Symfony šablóny (templates)
Vytváranie a využívanie šablón.
Templates - original documentation
Kontrolér vybavuje požiadavky (request) a zvyčajne to končí vytvorením odpovede v šablóne.
V praxi kontrolér deleguje ťažkú prácu na iné miesta, takže kód môže byť testovaný a opakovane využívaný. Ak kontrolér potrebuje vytvoriť HTML, CSS alebo iný obsah, prácu dáva motoru šablón.
V tejto kapitole sa naučíme ako písať šablóny, ktoré zobrazujú odpovede užívateľovi, naplnia obsah e-mailov, naučíme sa skratky, rozumné spôsoby rozširovania šablón a ako opakovane využívať kód.
Obsah
Šablóny
Typické šablóny sú textové výstup - mix kódov html, php. Symfony prináša silný nástroj twig. V mnohých ohľadoch prináša viac výhod než čísté php. Twig definuje tri typy špeciálnych príkazov:
{{ ... }}
Povedz niečo, zobrazí obsah premennej, výsledku a podobne.
{% ... %}
Vykonaj niečo: je to tag, ktorý kontroluje logiku v šablónach, napríklad cyklus.
{# ... #}
Niečo okomentuj, niečo ako php /* */ komentár, takisto môže byť použitý na viacero riadkov.
Twig prichádza aj s funkciami, ktoré zmenia výstup pred zobrazením, napríklad nasledujúci kód zmení text na veľké písmená:{{ title|upper }}. Twig má dlhý zoznam tag-ov, filtrov a funkcií. Môžete si vytvárať vlastné filtre, funkcia (a viac) pomocou twig extension.
Kód sa podobá jazyku php. Napríklad for s funkciou cycle() s ukážkou zobrazenia odlišne párne a nepárne riadky výstupu.
{% for i in 1..10 %} <div class="{{ cycle(['even', 'odd'], i) }}"> <!-- tu príde nejaký HTML kód --> </div> {% endfor %}
Užitočné výpis premennej, poľa
{{ line|json_encode(constant('JSON_PRETTY_PRINT')) }} {{ dump(line }}
Caching Twig šablón
Dedenie v šablónach a rozvrhnutie
Prispôsobivý web pre mobily
Pre responsívne správanie treba mať v base.html.twig:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
Pomenovanie a umiestnenie šablón
Značky a pomocníci (Tags and Helpers)
Nástroje na bežné práce v šablónach. Niektoré tagy už poznáme ({% block %} a {% extends %}).
Vloženie inej šablóny
Prepojenie na stránky (Linking to Pages)
Vytváranie prepojení na iné stránky (link) je veľmi častá práca v prostredí šablón. Namiesto písania celej URL použijeme funkciu path
(alebo router
PHP pomocníka). Výhoda je zrejmá, zmenou konfigurácie URL nie je treba editovať každé prepojenie.
Ak sme definovali meno hlavnej stránky ako "homepage" prepojenie vyzerá takto:
<a href="{{ path('homepage') }}">Hlavná stránka</a>
.. pre vzhľad pripomínajúci tlačidlo to môže byť aj takto:
<form> <button formaction="{{ path('homepage') }}">Hlavná stránka</button> </for>