Latte tag {do} možnosti použití

m.brecher
Generous Backer | 758
+
0
-

Ahoj,

Podle dokumentace https://latte.nette.org/cs/tags#… Latte tag {do } vykoná php kód. Není jasné, zda jeden řádek, nebo blok kódu.

Jeden řádek funguje

{do $var++}

Dva řádky v různých variantách co mě napadly vyzkoušet vyhazují výjimku:

{do
    $var = strlen($type),
    $var ++
}
{do
    $var = strlen($type);
    $var ++
}
{do
    $var = strlen($type)
    $var ++
}

Zřejmě je záměrem v tagu {do} mít pouze jeden řádek php kódu, který se v php ukončuje středníkem:

{do $var = strlen($type)}  {* toto funfuje *}
{do $var ++}

Jestli jsem to pochopil správně, tak bych do dokumentace tuto funkci nějak lépe popsal.

nightfish
Člen | 473
+
0
-

@mbrecher V Latte 3 podporuje značka {do} jako argument jediný výraz. Ten zároveň nesmí obsahovat žádné z vyjmenovaných slov
Stejné chování platí i pro značku {php}.

V Latte 2.11 to bylo vesměs tak, že do makra {do} šlo zapsat jenom jeden výraz, zatímco v {php} jsi mohl zapsat více výrazů, oddělených ; (viz kód).

m.brecher
Generous Backer | 758
+
0
-

@nightfish

Dík za info, do zdrojového kódu Latte jsem se nedíval, jenom testuji funkce. V tagu {php} ve verzi Latte 3.0.6 je možné zapsat několik řádků php kódu ukončených středníkem. Podle toho, že je tag {php} zmíněný v dokumentaci jen okrajově usuzuji, že není do budoucna perspektivní, takže tam doplňovat dokumentaci nemá cenu. Doplním dokumentaci k tagu {do}.

David Grudl
Nette Core | 8142
+
+3
-

Dokumentaci jsem už doplnil.