Virtuální operátor IN pro šablony

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
pekelnik
Člen | 462
+
0
-

Po delší době se hlásím z fronty :)

Šablony již nyní podporují zkrácený zápis pro pole:

{foreach ['banana', 'apple'] as $fruit}
	...

Nyní mne napadlo, že by se k tomu hodil operátor IN:

{foreach ['banana', 'apple'] as $fruit}
	{if $fruit in ['front light', 'rear light']}
		...

nebo

{if $module in ['admin', 'client', 'import']}
	...

Především pro práci se šablonami by to bylo super. Překlad do PHP by mohl být nejspíš in_array(%%, array(%%))

Co myslíte?

Editoval pekelnik (6. 1. 2011 15:31)

Mikulas Dite
Člen | 756
+
0
-

Prima!

A co teprve

{foreach $fruit in ['banana', 'apple']}

Edit: vneslo by to nejednoznačnost, já vim. Ale nerad čtu foreach $container as $item atp., protože to nedává smysl. pro každý kontejner je blbost, když ten je jenom jeden a teprve vevnitř obsahuje nějaký iterator.

Editoval Mikulas Dite (6. 1. 2011 16:42)

mkoubik
Člen | 728
+
0
-

A co teprv udělat kompilátor nějakýho slušnýho jazyka do php?

jtousek
Člen | 951
+
0
-

@mkoubik: To spíš vymyslet vlastní Nette jazyk. ;)

pekelnik
Člen | 462
+
0
-

Mikulas Dite napsal(a):

Prima!

A co teprve

{foreach $fruit in ['banana', 'apple']}

Edit: vneslo by to nejednoznačnost, já vim. Ale nerad čtu foreach $container as $item atp., protože to nedává smysl. pro každý kontejner je blbost, když ten je jenom jeden a teprve vevnitř obsahuje nějaký iterator.

Tohle už funguje pouze je tam AS ne IN…

Ondřej Mirtes
Člen | 1536
+
0
-

pekelnik: Eh, to nebude to samé.

Honza Marek
Člen | 1664
+
0
-

mkoubik napsal(a):

A co teprv udělat kompilátor nějakýho slušnýho jazyka do php?

Já to řikám furt.

grey
Člen | 94
+
0
-

já bych byl jednoznačně pro operátor in… viva la python! :)

Teyras
Člen | 81
+
0
-

grey napsal(a):

já bych byl jednoznačně pro operátor in… viva la python! :)

A jako další krok přejdeme všichni na Django :)

Jakub Lédl
Člen | 55
+
0
-

Teyras: +1 :-)

Co se týče operátoru in, tak jsem proti. Už od dávnověku testujeme přítomnost prvku v poli pomocí in_array, což není zas tak složitý zápis. Inkonzistence v šablonách která by zavedením vznikla IMHO toto nepatrné syntaktické vylepšení převažuje.

hason
Člen | 23
+
0
-

Možnou odpovědí je šablonovací systém Twig (má plnohodnotný parser vytvářející AST): http://www.twig-project.org/…mplates.html#…

grey
Člen | 94
+
0
-

Teyras wrote:

A jako další krok přejdeme všichni na Django :)

ne že by to nebylo v plánu ;)