twigAan de slag met een takje


Opmerkingen

Deze sectie geeft een overzicht van wat takje is en waarom een ontwikkelaar het misschien wil gebruiken.

Het moet ook alle grote onderwerpen binnen een takje vermelden en een link naar de gerelateerde onderwerpen bevatten. Omdat de documentatie voor twig nieuw is, moet u mogelijk eerste versies van die gerelateerde onderwerpen maken.

Basis API-gebruik

Het kan ook worden geïnstalleerd door de broncode te downloaden en in een map van uw project te plaatsen. Het gebruik van componisten heeft echter veel voordelen.

require '/path/to/lib/Twig/Autoloader.php';
Twig_Autoloader::register();

$loader = new Twig_Loader_Filesystem('/path/to/templates');

$options = array(
    'strict_variables' => false,
    'debug' => false,
    'cache'=> false
);

$twig = new Twig_Environment($loader, $options);
 

Bij het maken van een nieuwe instantie Twig_Environment kunt u een reeks opties doorgeven als tweede argument van de constructeur. Hier is een lijst met de beschikbare opties:

  • debug ( boolean , standaard false )

Wanneer ingesteld op true, hebben de gegenereerde sjablonen een __toString() -methode die u kunt gebruiken om de gegenereerde knooppunten weer te geven.

  • tekenset ( string , standaard utf-8 )

De tekenset die door de sjablonen wordt gebruikt.

  • base_template_class ( string , standaard Twig_Template )

De basissjabloonklasse die moet worden gebruikt voor gegenereerde sjablonen.

  • cache ( string of false , standaard false )

Een absoluut pad waar de gecompileerde sjablonen moeten worden opgeslagen, of false om caching uit te schakelen (standaard).

  • auto_reload ( boolean , standaard overgenomen van debug )

Bij het ontwikkelen met Twig is het handig om de sjabloon opnieuw te compileren wanneer de broncode verandert. Als u geen waarde opgeeft voor de optie auto_reload, wordt deze automatisch bepaald op basis van de foutopsporingswaarde.

  • strict_variables ( boolean , standaard false )

Indien ingesteld op false, negeert Twig stilletjes ongeldige variabelen (variabelen en of attributen / methoden die niet bestaan) en vervangen door een nulwaarde. Wanneer ingesteld op true, maakt Twig in plaats daarvan een uitzondering.

  • autoescape ( string of boolean , standaard true )

Indien ingesteld op true, wordt automatisch escapen van HTML standaard ingeschakeld voor alle sjablonen.

Vanaf Twig 1.8 kunt u de ontsnappingsstrategie instellen (html, js, false om uit te schakelen).

Vanaf Twig 1.9 kunt u de escaping-strategie instellen voor gebruik (css, url, html_attr, of een PHP callback met de sjabloon "bestandsnaam" en moet de escaping-strategie teruggeven voor gebruik - de callback kan geen functienaam zijn om te vermijden botsing met ingebouwde ontsnappingsstrategieën).

Vanaf Twig 1.17 bepaalt de ontsnappingsstrategie van de bestandsnaam de ontsnappingsstrategie die moet worden gebruikt voor een sjabloon op basis van de verlenging van de sjabloonbestandsnaam (deze strategie brengt geen overhead met zich mee tijdens de uitvoering omdat automatisch ontsnappen wordt gedaan tijdens de compilatie.)

  • optimalisaties ( geheel getal , standaard -1 )

Een vlag die aangeeft welke optimalisaties moeten worden toegepast:
set to -1 to enabled all optimalizations
set o 0 to disable all optimalitazations

Officiële Twig Installatiehandleiding

Een Twig PHP-extensie (geschreven in C) kan ook worden gecompileerd en geïnstalleerd, en het PHP-pakket zal daar automatisch gebruik van maken voor het optimaliseren van enkele gebruikelijke routines.

Invoering

Als u wordt blootgesteld aan andere op tekst gebaseerde sjabloontalen, zoals Smarty , Django of Jinja , moet u zich meteen thuis voelen bij Twig . Het is zowel ontwerper als ontwikkelaarsvriendelijk door vast te houden aan de principes van PHP en functionaliteit toe te voegen die handig is voor sjabloonomgevingen.

De belangrijkste kenmerken zijn ...

  • Snel: Twig compileert sjablonen tot eenvoudig geoptimaliseerde PHP-code. De overhead vergeleken met reguliere PHP-code was tot het minimum beperkt.
  • Veilig: Twig heeft een sandbox-modus om niet-vertrouwde sjablooncode te evalueren. Hierdoor kan Twig worden gebruikt als een sjabloontaal voor toepassingen waarbij gebruikers het sjabloonontwerp kunnen wijzigen.
  • Flexibel: Twig wordt aangedreven door een flexibele lexer en parser . Hiermee kan de ontwikkelaar zijn eigen aangepaste tags en filters definiëren en zijn eigen DSL maken.

Twig wordt gebruikt door veel open-source projecten zoals Symfony , Drupal , eZpublish en vele kaders hebben ondersteuning voor het zo goed als Slim , Yii , Laravel , Codeigniter , silex en Kohana - om er maar een paar te noemen.

Installatie

De aanbevolen manier om Twig te installeren is via Composer :

Voor php 5.x- gebruikers

composer require "twig/twig:~1.0"
 

Voor gebruikers van php 7.x

composer require "twig/twig:~2.0"
 

Wat is Twig?

Twig is een sjabloontaal die compileert naar geoptimaliseerde PHP-code. Het wordt voornamelijk gebruikt voor het uitvoeren van HTML, maar kan ook worden gebruikt om een ander op tekst gebaseerd formaat uit te voeren. Het is een op zichzelf staand onderdeel dat eenvoudig in elk PHP-project kan worden geïntegreerd.

Het biedt veel uitstekende functies:

  • Autoescaping voor HTML (helpt XSS te voorkomen)
  • Syntaxis ontworpen met sjablonen in gedachten (gebaseerd op Django-sjablonen)
  • Sjabloonovererving
  • macro's

Officiële Twig Templating Documentation

Voorbeeld van de syntaxis van Twig:

{% extends "base.html" %}

{% block sidebar %}
  {{ parent() }}
  <span>Sidebar content specific to this page</span>
{% endblock sidebar %}

{% block body %}
  <p>Select an item:</p>
  <ul>
    {% for item in list %}
      <li><a href="/items/{{ item.id }}">{{ item.name }}</a>
    {% else %}
      <li>No items yet.
    {% endfor %}
  </ul>
{% endblock body %}