Sök…


Anmärkningar

Det här avsnittet ger en översikt över vad kvist är, och varför en utvecklare kanske vill använda den.

Det bör också nämna alla stora ämnen inom kvist, och länka till relaterade ämnen. Eftersom dokumentationen för kvist är ny kan du behöva skapa initialversioner av relaterade ämnen.

Grundläggande API-användning

Det kan också installeras genom att ladda ner källkoden och placera den i en katalog för ditt projekt. Det finns emellertid många fördelar med att använda kompositör.

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);

När du skapar en ny Twig_Environment instans kan du skicka en rad alternativ som konstruktörens andra argument. Här är en lista över tillgängliga alternativ:

  • felsökning ( booleska , standard false )

När den är satt har de genererade mallarna en __toString() -metod som du kan använda för att visa de genererade noderna.

  • charset ( sträng , standard utf-8 )

Charset som används av mallarna.

  • base_template_class ( sträng , standard Twig_Template )

Basmallklassen som ska användas för genererade mallar.

  • cache ( sträng eller false , standard false )

En absolut sökväg där de kompilerade mallarna ska lagras, eller falskt för att inaktivera cache (som är standard).

  • auto_reload ( boolean , standard ärvt från felsökning )

När du utvecklar med Twig är det bra att kompilera mallen när källkoden ändras. Om du inte anger ett värde för alternativet auto_reload bestäms det automatiskt baserat på felsökningsvärdet.

  • strict_variables ( boolean , default false )

Om den är inställd på falsk kommer Twig tyst att ignorera ogiltiga variabler (variabler och / eller attribut / metoder som inte finns) och ersätta dem med ett nollvärde. När den är satt, kastar Twig ett undantag istället.

  • autoescape ( string eller boolean , default true )

Om det är satt, aktiveras HTML auto-escing som standard för alla mallar.

Från Twig 1.8 kan du ställa in den rymdstrategin som ska användas (html, js, false för att inaktivera).

Från Twig 1.9 kan du ställa in den rymdstrategin som ska användas (css, url, html_attr eller en PHP-återuppringning som tar mallen "filnamn" och måste returnera den undkommande strategin för att använda - återuppringningen kan inte vara ett funktionsnamn för att undvika kollision med inbyggda rymdstrategier).

Från Twig 1.17 bestämmer filnamnsströmningsstrategin vilken rymmningsstrategi som ska användas för en mall baserad på mallens filnamnstillägg (denna strategi medför inget overhead under körning eftersom auto-escaping görs vid sammanställningstiden).

  • optimeringar ( heltal , standard -1 )

En flagga som anger vilka optimeringar som ska tillämpas:
set to -1 to enabled all optimalizations
set o 0 to disable all optimalitazations

Officiell installationsguide för kvist

En Twig PHP-förlängning (skriven i C) kan också kompileras och installeras, och PHP-paketet utnyttjar automatiskt det för att optimera vissa vanliga rutiner.

Vad är kvist?

Twig är ett mallspråk som sammanställer till optimerad PHP-kod. Det används främst för att mata ut HTML, men kan också användas för att mata ut något annat textbaserat format. Det är en fristående komponent som enkelt kan integreras i alla PHP-projekt.

Det ger många utmärkta funktioner:

  • Autoparkering för HTML (hjälper till att förhindra XSS)
  • Syntax designad med mönster i åtanke (baserad på Django-mallar)
  • Mallarv
  • Makron

Officiell Twig Templating Documentation

Exempel på Twigs syntax:

{% 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 %}

Introduktion

Om du har någon exponering för andra textbaserade mallspråk, som Smarty , Django eller Jinja , bör du känna dig som hemma med Twig . Det är både designer- och utvecklingsvänligt genom att hålla sig till PHP: s principer och lägga till funktionalitet som är användbar för mallmiljöer.

Nyckelfunktionerna är ...

  • Snabb: Twig sammanställer mallar till vanlig optimerad PHP-kod. Omkostnaderna jämfört med vanlig PHP-kod reducerades till det lägsta.
  • Säkert: Twig har ett sandlådeläge för att utvärdera otillförlitlig mallkod. Detta gör att Twig kan användas som mallspråk för applikationer där användare kan ändra malldesign.
  • Flexibel: Twig drivs av en flexibel lexer och parser . Detta gör det möjligt för utvecklaren att definiera sina egna anpassade taggar och filter och skapa sin egen DSL.

Twig används av många Open-Source-projekt som Symfony , Drupal , eZPublish och många ramverk har stöd för det liksom Slim , Yii , Laravel , Codeigniter , silex och Kohana - för att bara nämna några.

Installation

Det rekommenderade sättet att installera Twig är via Composer :

För php 5.x användare

composer require "twig/twig:~1.0"

För php 7.x användare

composer require "twig/twig:~2.0"


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow