Novinky v Latte 2.6: volitelné řetězení a vlastní funkce
Nedávno vyšlo Latte 2.6, se kterým přicházejí dvě šikovné novinky, které zjednoduší a zpřehlední vaše šablony. Pojďme se na ně podívat.

Volitelné řetězení
Volitelné řetězení (optional chaining) umožňuje psát kód, kde Latte
okamžitě zastaví vyhodnocování výrazů, pokud narazí na null. A to díky
novému operátoru ?
umožňujícímu volitelný přístup
k proměnným nebo prvkům pole. Když píšeme výraz jako
říkáme tím, že když je definován $order
, bude vypsán
$order->id
, ale když je $order
null, zastaví se
vyhodnocování a prostě se vrátí null.
Uvidíte, že pomocí ?
nahradíte spoustu kódu, který by
jinak opakovaně kontroloval null:
V příkladech píši cca
, protože ve skutečnosti se výraz
vyhodnocuje důmyslněji a žádný krok se neopakuje. Například
$user->getIdentity()
se zavolá jen jednou, tedy nemůže nastat
problém způsobený tím, že by metoda poprvé vrátila objekt a
podruhé null.
Výrazy s volitelným řetězením lze používat kdekoliv, například v podmínkách:
Vlastní funkce
V Latte můžete používat všechny globální funkce PHP, ale nyní si také definovat své vlastní:
nebo v presenterech (vyžaduje nette/application v3.0.3):
Použití je pak stejné, jako když voláte PHP funkci:
Podporu vlastních funkcí najdete i v Latte pluginu pro PhpStorm (lze nastavit i přes XML konfiguraci):

Jak obrázek naznačuje, společně s novou verzí
nette/application
můžete v šablonách používat novou dvojici
funkcí isLinkCurrent()
a isModuleCurrent()
.
Komentáře
Tak tohle je bomba :)
Vypadá to skvěle.
U příkladů s vlastní funkcí by myslím mělo být
#2 uestla Teď budu dělat chytrýho, protože sem to dneska četl. To je syntaxe z PHP8, viz https://blog.nette.org/…e-noveho-1-4.
#2 uestla díky, opraveno
Chcete-li odeslat komentář, přihlaste se