Jak na složené závorky v php kódu v šabloně? (Nette 2.4)
- Šaman
- Člen | 2659
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
slozity php kod tam nepis. kdyz uz, tak si predej z presenteru nejakou closure jako callback
- Šaman
- Člen | 2659
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
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 if
y
viz http://php.net/…e-syntax.php .