Jak na složené závorky v php kódu v šabloně? (Nette 2.4)

Šaman
Člen | 2659
+
+1
-

Dřív jsem používal <?php > když jsem potřeboval vykonat v šabloně nějaký kód. Stává se to výjimečně, ale občas je to nejjednodušší řešení.

Ale na Nette 2.4 je to deprecated. (Inline <?php ... ?> is deprecated, use {php ... })
Problém je, že makro {php } není použitelné na kód obsahující složené závorky, nejspíš je považuje za uzavření makra a tedy Malformed macro in ...

David Matějka
Moderator | 6445
+
+1
-

slozity php kod tam nepis. kdyz uz, tak si predej z presenteru nejakou closure jako callback

Jan Endel
Člen | 1016
+
0
-

Což si třebas změnit syntax na double, to by nepomohlo?

Šaman
Člen | 2659
+
0
-

Jan Endel napsal(a):

Což si třebas změnit syntax na double, to by nepomohlo?

Nepomohlo, to bylo prvni, co jsem zkoušel. Mimochodem syntax asp a python už asi nejsou podporované.

David Matějka napsal(a):

slozity php kod tam nepis. kdyz uz, tak si predej z presenteru nejakou closure jako callback

Jasně, jestli to opravdu nemá lepší řešení, tak to tak udělám. Ale jedná se o pomocné dotřídění záznamů pro jednu buňku v gridu, takže ten kód má smysl právě tam. Takhle pro ten kód budu dělat samostatnou třídu, která je ale stejně úzce spjatá s daty té šablony. Dá se řict, že mě to jen donutí vyčlenit php kód do jiného souboru, který ale nebude ukotven v MVP struktuře. Takže i když oddělení php a latte zní správně, prakticky to k ničemu nebude. (Tahle šablona není navázaná na presenter.)


A taky tím prakticky latte přestalo být použitelné pro rychlý přepis archaických kódů, které vypisují data přímo z php. Doteď šlo nechat ten php kód a pomocí maker zpracovat jen ty výpisy. Pak trochu přeformátovat a výsledkem byl sice stále bastl, ale o hodně čitelnější. Teď to znamená buď přepsat od začátku, nebo na to vůbec nesahat…

Editoval Šaman (19. 12. 2017 18:14)

helvete
Člen | 16
+
0
-

Souhlasim s tim, ze takovahle situace by nemela v idealnim pripade nastavat. Nicmene, casto neni cas napriklad pri upgrade aplikaci na vyssi verzi PHP + Nette refaktorovat vsechny prasarny.

Muze pomoci alternativni syntax PHP, napriklad na rozvetveny ify viz http://php.net/…e-syntax.php .