Illogic vs HTML+PHP Standard

HTML Illogic
<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>';
} ?>
<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!}}

Results

Federico Quagliotto

It's in the team!

Object of trade:


Guida

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..

Esempio:

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!

Descrizione

Illogic, il cui nome è temporaneo, 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..


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.

Test

Download


<?
//Utilizzo:
$illogic = new illogic
$illogic
->setTemplate($template);
$illogic->setObject($object);
echo 
$illogic->render();
// Oppure
echo $illogic->render($template$object);
?>