Illogic

Illogic nasce come esperimento di stile, ma anche come necessità per implementare un rudimentale template engine in Gyural.

È fortemente ispirato a mustache, che viene preferito per produzioni serie..

HTML + PHP

<h1><?= $object->name; ?> <?= $object->surname; ?></h1>
<?php if($object->inTeam == 1) { ?>
	<?php if(count($object->objects) > 0) { ?>
		<p>It's on the team</p>
		<p>Object of trade:</p>
		<ul>
		<?php foreach($object->objects as $value) { ?>
			<? echo '<li>'.$value["name"].'</li>'; ?>
		<?php } ?>
		</ul>
	<?php } ?>
<?php } else {
	echo '<p>It's not in the team</p>';
} ?>

Illogic

<h1>{{name}} {{surname}}</h1>
{{#inTeam}}
	{{#objects?}}
		<p>It's in the team!</p>
		<p>Object of trade:</p>
		<ul>
		{{#objects}}
			<li>{{name}}</li>
		{{/#objects}}
		</ul>
	{{/#objects?}}
{{/#inTeam}}
{{#inTeam!}}
	<p>It's not in the team!</p>
{{/#inTeam!}}
	

Descrizione

Illogic può essere usato per markuppare più velocemente dell'html, un file di testo, un file di configurazione, qualunque cosa.
Non ci sono condizioni if/else/then ne while/for/dowhile/etc
Si basa molto sull'intuizione del dato..

  • Un vettore, sarà processato N volte
  • Un booleano verà considerato true/false
  • Una stringa verrà convertita..
  • Ecc.


Guida

Il template:

Ciao {{nome}}, hai vinto {{premio}} € in gettoni d'oro!

Con la seguente struttura passata

Array(
	'nome'=>'Federico',
	'premio'=> 100
)

Produrrà:

Ciao Federico, hai vinto 100 € in gettoni d'oro!


Tipi di {{segnaposto}}

{{nomeSegnaposto}}

Fa riferimento al valore singolo "nomeSegnaposto"; {{nome}} farà riferimento a "Federico"

{{#nomeSegnaposto}} si chiude con {{/#nomeSegnaposto}}

Il cancelletto avanti al nome della funzione determina un blocco.
Se il nomeSegnaposto è di tipo booleano/intero il blocco viene processato se il valore è diverso da false o 0
Se il nomeSegnaposto è un vettore, questo blocco verrà ripetuto N volte, tante quanti sono gli elementi del vettore.

{{#nomeSegnaposto?}} si chiude con {{/#nomeSegnaposto?}}

Il ? dopo il nome del segnaposto trasforma un qualunque blocco in una condizione vera. Il comportamento sarà analogo a {{#nomeSegnaposto}} tranne nel caso del vettore. Nel caso in cui il vettore abbia più di zero elementi, il blocco verrà considerato vero.

{{#nomeSegnaposto!}} si chiude con {{/#nomeSegnaposto!}}

Il ! dopo il nome del segnaposto trasforma un qualunque blocco in una condizione falsa. Analogo a {{#nomeSegnaposto?}} ma affinché il blocco si visualizzi, la condizione deve essere falsa.

Illogic © 2012 Mandarinoadv