Větvička | |
---|---|
Typ | procesor šablon |
Autor | Armin Ronacher, Fabien Potencier |
Vývojář | Fabien Potencier, Sensio Labs |
Zapsáno v | PHP |
Operační systém | multiplatformní |
První vydání | 12. října 2008 |
Nejnovější verze | |
Stát | aktuální |
Licence | BSD |
webová stránka | twig.symfony.com |
Twig je open source překladač šablon napsaný v programovacím jazyce PHP . Armin Ronacher napsal Twig v roce 2008 pro blogovací platformu Chyrp. K vývoji se již nevrátil a více se věnoval vývoji Pythonu . Syntaxe šablonovacího jazyka Twig pochází z šablonovacích motorů Jinja a Django , z nichž první byl také vytvořen Ronacherem. Myšlenku tohoto šablonovacího enginu vyvinul a podporuje Fabien Potensier, hlavní vývojář a ideolog frameworku Symfony , který standardně používá Twig.
Sám Fabien o něm říká:
Když jsem začal hledat PHP šablonovač, zaměřil jsem se na knihovny, které napodobují Djangovo chování. Po pár hodinách googlování byla Twig nalezena. Jeho autorem je Armin Ronacher, známý z projektu Jinja (Python šablonovací engine). Bezpochyby mám k Arminovi největší respekt za jeho úžasnou práci na Jinji. Twig je spíše Jinja než Django, jak je popsáno v implementaci.
Když jsem se podíval na kód, okamžitě jsem věděl, že to je to, co hledám. Hlavní rozdíl oproti Calypso je v tom, že Twig kompiluje šablony do běžného PHP kódu. Začal jsem používat tuto knihovnu a na konci tohoto týdne jsem požádal Armina, zda by nechtěl dát svému projektu nový život. Jeho odpověď byla nadšená a já začal studovat kód. Moje verze je velmi odlišná od Arminovy, ale "lexer" a "parser" jsou zachovány téměř ve své původní podobě.
Strávil jsem jen pár dní prací na kódu, ale už teď jsem na výsledek hrdý a myslím, že je čas knihovnu veřejně ukázat. Včera jsem napsal dokumentaci a vytvořil jednoduchý web. Zbývá ještě hodně práce: dokončit dokumentaci, přidat testy a PHPDoc; ale kód je již kompletní a funkční:
I když je Twig nejfunkčnější šablonovací engine, je také nejrychlejší.
Překlad článku z osobního blogu
Níže uvedený příklad ukazuje některé z hlavních funkcí Twig.
{% extends "base.html" %} {% block navigation %} < ul id = "navigation" > {% for item in navigation %} < li > < a href = " {{ item.href }} " > { % if item.level == 2 %} {% endif %} {{ item.caption | horní }} </ a > </ li > {% endfor %} </ ul > {% endblock navigation %}