Twig > Basis


Twig slaat een brug tussen backend-ontwikkeling en frontend-weergaves. Binnen nodum speelt Twig een belangrijke rol. Twig zorgt ervoor dat API's aangeroepen kunnen worden, variabelen gebruikt kunnen worden en dat door de gebruiker ingevulde formulieren op een website kunnen worden verwerkt. De basisbeginselen van Twig leer je in dit hoofdstuk.

Twig heeft twee belangrijke taalkundige grondbeginselen: Binnen Twig is er een schrijfwijze om iets weer te geven en een schrijfwijze om een opdracht uit te voeren. Beide schrijfwijzen worden omhuld door accolades.

{{  }} toont het resultaat. 
{%  %} voert een opdracht uit, dit is voor logica zoals berekeningen, loops etc.  

De schrijfwijze met dubbele accolades {{ }} gebruik je als je bijvoorbeeld gegevens uit een database wilt tonen. Of om {{ 1 + 1 }} te laten berekenen. De uitvoer is dan 2 en de accolades worden niet weergegeven in de browser. Om een opdracht op de achtergrond te laten uitvoeren gebruik je {% %}. Er kunnen verschillende opdrachten gegeven worden, waaronder if, do, set, for en include. In de paragraaf Commando's gaan we dieper in op de verschillende opdrachten die gegegven kunnen worden. In de Twig-documentatie staat een overzichtelijk overzicht van alle voorkomende tags.

Tot slot hanteren de makers van Twig nog enkele standaarden voor het schrijven van hun code. Zo gebruik je na iedere opening en voor iedere sluiting van een commando slechts één spatie en gebruik je geen spaties voor en na een ( of ). Alle conventies zijn te vinden op de officiële pagina van Twig.

Voorbeeld
Stel je voor je wilt een brief aan de Koning schrijven, maar hij heeft een lange naam die je een aantal keer in de brief wilt vermelden. Hier wil je geen schrijffouten in maken. Met behulp van Twig hoef je de naam maar 1 keer goed te schrijven en alle volgende keren roep je de naam aan met een veel kortere, en heel handig, zelfbedachte naam. In het voorbeeld gebruiken we 'kroon'.

 {% set kroon = 'willem-alexander Claus George Ferdinand, Koning der Nederlanden, Prins van Oranje-Nassau, Jonkheer van Amsberg' %}

Op dit moment is op de gehele pagina mogelijk om {{ kroon }} aan te roepen en dan de lange naam van de Koning weer te geven.

Beste {{ kroon }},

Komt u ook op mijn feestje?

Groeten,

De uitvoer van je tekst zal het volgende zijn:

Beste willem-alexander Claus George Ferdinand, Koning der Nederlanden, Prins van Oranje-Nassau, Jonkheer van Amsberg,

Komt u ook op mijn feestje?

Groeten,

De code is uitgevoerd zoals je zou willen. In het bovenstaande voorbeeld staat echter een fout, want 'willem-alexander' moet eigenlijk met een dubbele hoofdletter zijn. Hiervoor kun je een zogenaamde 'sanitizer' voor gebruiken. Een sanitizer is een filter voor de uitvoer van de waarde die je opgegeven hebt. Bij het afronden van getallen komt |round goed van pas en |reverse kan zorgen voor het omdraaien van bijvoorbeeld een getallenreeks. De sanitizer |title maakt van een naam, bestaande uit iets anders dan een hoofdletter en kleine letters een correct geschreven naam. In dit geval wordt dus ook de 'a' in 'alexander' omgevormd naar een hoofdletter.

Beste {{ kroon|title }},

De uitvoer ziet er dan als volgt uit:

Beste Willem-Alexander Claus George Ferdinand, Koning der Nederlanden, Prins van Oranje-Nassau, Jonkheer van Amsberg,

Nu je een blik hebt kunnen werpen in de wereld van Twig gaan we in de volgende paragrafen meer de diepte in.