WikiDer > Twig (shablon mexanizmi)
| Asl muallif (lar) | Armin Ronaxer,[1] Fabien Potensier | 
|---|---|
| Tuzuvchi (lar) | SensioLabs | 
| Dastlabki chiqarilish | 2009 yil 12 oktyabr | 
| Barqaror chiqish | 3.1.1[2]   / 27 oktyabr 2020 yil  | 
| Ombor |   | 
| Yozilgan | PHP | 
| Operatsion tizim | O'zaro faoliyat platforma | 
| Turi | Shablonli dvigatel | 
| Litsenziya | BSD litsenziyasi | 
| Veb-sayt | novda | 
Twig a shablon mexanizmi uchun PHP dasturlash tili. Uning sintaksisi kelib chiqadi Jinja va Django andozalar.[3] Bu ochiq manbali mahsulot[4] ostida litsenziyalangan BSD litsenziyasi va Fabien Potencier tomonidan qo'llab-quvvatlanadi. Dastlabki versiyasi tomonidan yaratilgan Armin Ronaxer. Simfoni PHP ramkasi Twig-ni qo'llab-quvvatlaydi, chunki u 2-versiyadan beri standart shablon mexanizmi.[5]
Xususiyatlari
- murakkab boshqaruv oqimi
 - avtomatik qochish
 - shablon merosi
 - o'zgaruvchan filtrlar[6]
 - i18n-ni qo'llab-quvvatlash (gettext)
 - makrolar
 - to'liq kengaytirilishi mumkin[3][7]
 
Twig quyidagilar tomonidan qo'llab-quvvatlanadi birlashgan rivojlanish muhiti:[3]
- Tutilish Twig plagini orqali
 - Komodo va Komodo tahriri Twig ta'kidlash / sintaksisini tekshirish rejimi orqali
 - NetBeans Twig sintaksis plagini orqali (7.2 gacha, 7.2 gacha)
 - PhpStorm (2.1 dan boshlab mahalliy)
 
Va matn muharrirlari:
- Atom atom uchun PHP-novdasi orqali
 - emak veb-mode.el orqali
 - Notepad ++ Notepad ++ Twig yoritgichi orqali
 - Yuqori matn Twig to'plami orqali
 - TextMate Twig to'plami orqali
 - vim Jinja sintaksis plagini yoki vim-twig plagini orqali
 - Qavslar Qavslar Twig orqali
 - Visual Studio kodi Twig kengaytmasi orqali
 - GTKSourceView Twig tilining ta'rifi orqali
 - Koda Twig sintaksis rejimi orqali
 - Coda 2 boshqa Twig sintaksis rejimi orqali
 - SubEthaEdit Twig sintaksis rejimi orqali
 
Sintaksis
Twig uch xil ajratuvchini belgilaydi:
{{ ... }}, o'zgaruvchilarning tarkibini yoki ifodani baholash natijasini chop etish uchun (masalan: bilan meros qilib olingan Twig shablonini{{ota-ona ()}}).{# ... #}, shablonlarga sharhlar qo'shish uchun. Ushbu sharhlar ko'rsatilgan sahifaga kiritilmagan.{% ... %}, for-loops kabi so'zlarni bajarish uchun.{% o'rnatilgan foo = "bar" %}, tayinlash.[8]{% agar men bu belgilangan va men == 1%} ... {% endif %}: shart.{% uchun men yilda 0..10 %} ... {% endfor %}: ko'chadan hisoblagich.
Apostrof (') - bu qochish belgisi.
Takrorlanadigan qator yaratish uchun:
{% o'rnatilgan myArray = [1, 2] %}Assotsiativ qator:
{% o'rnatilgan myArray = {"kalit": "qiymat"} %}Operatorlarning ustuvorligi
Operatorlarning ustuvorligi:[3] kamroqdan ustunlikka:
| Operator | Rol | 
|---|---|
| b-va | Mantiqiy va | 
| b-xor | Eksklyuziv yoki | 
| b-yoki | Mantiqiy yoki | 
| yoki | Yoki | 
| va | Va | 
| == | Tengmi? | 
| != | Turli xilmi? | 
| < | Kamroq | 
| > | Yuqori | 
| >= | Yuqori yoki teng | 
| <= | Kam yoki teng | 
| yilda | Ichiga | 
| gugurt | Muvofiq | 
| bilan boshlanadi | Boshlanishi | 
| bilan tugaydi | Tugaydi | 
| .. | Tartib (masalan: 1..5) | 
| + | Bundan tashqari | 
| - | Kamroq | 
| ~ | Birlashtirish | 
| * | Ko'paytirish | 
| / | Bo'lim | 
| // | Bo'lim pastga tushirish uchun yaxlitlandi | 
| % | Modulo | 
| bu | Sinov (masalan: belgilanadi yoki bo'sh emas) | 
| ** | Quvvat | 
| | | Filtr[6] | 
| [] | Array kirish | 
| . | Ob'ektdan atribut yoki usul (masalan: mamlakat nomi) | 
Filtrlar
Filtrlar quvurlar bilan ajratilgan holda, ifoda bo'yicha ba'zi ishlovlarni beradi. Masalan:[6]
katta harflar bilan yozmoq: qatorning birinchi harfini bosh harfga o'zgartiradi.yuqori: butun qatorni bosh harfga o'zgartiradi.birinchi: qatorning birinchi qatorini aks ettiradi.uzunlik: o'zgaruvchan hajmni qaytaradi.
Maxsus o'zgaruvchilar
pastadirjoriy tsikl ma'lumotlarini o'z ichiga oladi. Masalanloop.indexallaqachon sodir bo'lgan takrorlanishlar soniga to'g'ri keladi.- Global o'zgaruvchilar pastki chiziqlardan boshlanadi. Masalan:
- _route (domendan keyin joylashgan URL qismi)
 - _self (joriy fayl nomi)
 
- Shunday qilib, sahifa marshrutiga: 
{{path (app.request.attributes.get ('_ route'), app.request.attributes.get ('_ route_params'))}} 
 - CGI muhit o'zgaruvchilari, kabi 
{{app.request.server.get ('SERVER_NAME')}}. 
Misol
Quyidagi misol Twig-ning ba'zi bir asosiy xususiyatlarini namoyish etadi.
{% uzaytiradi "base.html" %}{% blokirovka qilish navigatsiya %}    <ul id="navigatsiya">    {% uchun element yilda navigatsiya %}        <li>            <a href="{{ item.href }}">                {% agar element.level == 2 %}& nbsp; & nbsp;{% endif %}                {{ item.caption|yuqori }}            </a>        </li>    {% endfor %}    </ul>{% endblock navigatsiya %}Shuningdek qarang
Adabiyotlar
- ^ "mitsuhiko / twig". 2019 yil 13-avgust - GitHub orqali.
 - ^ "3.1.1 versiyasi". 27 oktyabr 2020 yil. Olingan 18 noyabr 2020.
 - ^ a b v d "Andoza dizaynerlari uchun twig - Hujjatlar - Twig - egiluvchan, tezkor va xavfsiz PHP shablon mexanizmi". twig.symfony.com.
 - ^ "twigphp / Twig". 2020 yil 1-iyul - GitHub orqali.
 - ^ "Symfony2 Documentation - Hujjatlar". web.archive.org. 2010 yil 5-avgust.
 - ^ a b v "Filtrlar - Hujjatlar - Twig - moslashuvchan, tezkor va xavfsiz PHP shablon mexanizmi". twig.symfony.com.
 - ^ "Twigni kengaytirish - Hujjatlar - Twig - moslashuvchan, tezkor va xavfsiz PHP shablon mexanizmi". twig.symfony.com.
 - ^ "set - Documentation - Twig - moslashuvchan, tezkor va xavfsiz PHP shablon mexanizmi". twig.symfony.com.
 
Tashqi havolalar
- Twig rasmiy veb-sayti
 - PHP-da dvigatellarni andozalash, Fabien Potencier, 2009 yil