twig ट्यूटोरियल
टहनी से शुरुआत करना
खोज…
टिप्पणियों
यह खंड क्या टहनी है का एक सिंहावलोकन प्रदान करता है, और एक डेवलपर इसका उपयोग क्यों करना चाहता है।
यह भी टहनी के भीतर किसी भी बड़े विषयों का उल्लेख करना चाहिए, और संबंधित विषयों के लिए लिंक करना चाहिए। चूंकि टहनी के लिए दस्तावेज़ीकरण नया है, इसलिए आपको उन संबंधित विषयों के प्रारंभिक संस्करण बनाने की आवश्यकता हो सकती है।
मूल एपीआई उपयोग
इसे सोर्स कोड को डाउनलोड करके और अपने प्रोजेक्ट की डायरेक्टरी में रखकर भी इंस्टॉल किया जा सकता है। हालांकि संगीतकार का उपयोग करने के कई फायदे हैं।
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);
एक नया Twig_Environment
आवृत्ति Twig_Environment
, आप विकल्प के एक सरणी को कंस्ट्रक्टर के दूसरे तर्क के रूप में पास कर सकते हैं। यहां उपलब्ध विकल्पों की एक सूची दी गई है:
- डिबग ( बूलियन , डिफ़ॉल्ट
false
)
जब सही पर सेट किया जाता है, तो उत्पन्न टेम्प्लेट में एक
__toString()
विधि होती है जिसका उपयोग आप उत्पन्न नोड्स को प्रदर्शित करने के लिए कर सकते हैं।
- चारसेट ( स्ट्रिंग , डिफ़ॉल्ट
utf-8
)
टेम्प्लेट द्वारा उपयोग किया जाने वाला चारसेट।
- base_template_class ( स्ट्रिंग , डिफ़ॉल्ट
Twig_Template
)
बेस टेम्प्लेट वर्ग उत्पन्न टेम्पलेट्स के लिए उपयोग करने के लिए।
- कैश ( स्ट्रिंग या
false
, डिफ़ॉल्टfalse
)
एक पूर्ण पथ जहां संकलित टेम्पलेट्स को संग्रहीत करने के लिए, या कैशिंग को अक्षम करने के लिए गलत है (जो डिफ़ॉल्ट है)।
- auto_reload ( बूलियन , डिबग से विरासत में मिली डिफ़ॉल्ट)
जब Twig के साथ विकसित हो रहा है, तो जब भी स्रोत कोड बदलता है, तब टेम्पलेट को पुन: व्यवस्थित करना उपयोगी होता है। यदि आप auto_reload विकल्प के लिए कोई मान प्रदान नहीं करते हैं, तो यह डीबग मान के आधार पर स्वचालित रूप से निर्धारित किया जाएगा।
- सख्त_परिवार ( बूलियन , डिफ़ॉल्ट
false
)
यदि गलत पर सेट किया जाता है, तो Twig चुपचाप अमान्य चरों (चर और विशेषताओं या विधियों / जो मौजूद नहीं हैं) को अनदेखा कर देंगे और उन्हें एक अशक्त मान से बदल देंगे। जब सही पर सेट किया जाता है, तो ट्विग इसके बजाय एक अपवाद फेंकता है।
- ऑटोज़स्केप ( स्ट्रिंग या बूलियन , डिफ़ॉल्ट
true
)
यदि यह सही है, तो HTML ऑटो-एस्केप सभी टेम्प्लेट के लिए डिफ़ॉल्ट रूप से सक्षम हो जाएगा।
टहनी 1.8 के रूप में, आप उपयोग करने के लिए भागने की रणनीति (HTML, js, अक्षम करने के लिए झूठा) सेट कर सकते हैं।
Twig 1.9 के रूप में, आप उपयोग करने के लिए भागने की रणनीति (css, url, html_attr, या PHP कॉलबैक सेट कर सकते हैं जो टेम्पलेट "फाइलनाम" लेता है और उपयोग करने के लिए भागने की रणनीति वापस करनी चाहिए - कॉलबैक बचने के लिए फ़ंक्शन नाम नहीं हो सकता है अंतर्निहित भागने की रणनीतियों के साथ टकराव)।
1.17 टहनी के रूप में, फ़ाइल नाम से बचने की रणनीति टेम्पलेट फ़ाइल नाम एक्सटेंशन के आधार पर टेम्पलेट के लिए उपयोग करने के लिए भागने की रणनीति निर्धारित करती है (यह रणनीति रनटाइम के दौरान किसी भी ओवरहेड को उकसाती नहीं है क्योंकि संकलन समय पर ऑटो-एस्केप किया जाता है।)
- अनुकूलन ( पूर्णांक , डिफ़ॉल्ट
-1
)
एक ध्वज जो इंगित करता है कि कौन से अनुकूलन लागू होते हैं:
set to -1 to enabled all optimalizations
set o 0 to disable all optimalitazations
एक Twig PHP एक्सटेंशन (C में लिखा) भी संकलित और स्थापित किया जा सकता है, और कुछ सामान्य दिनचर्या को अनुकूलित करने के लिए PHP पैकेज स्वचालित रूप से इसका लाभ उठाएगा।
टहनी क्या है?
Twig एक टेम्प्लेटिंग भाषा है जो PHP कोड को अनुकूलित करने के लिए संकलित है। यह मुख्य रूप से HTML के आउटपुट के लिए उपयोग किया जाता है, लेकिन इसका उपयोग किसी अन्य टेक्स्ट-आधारित प्रारूप को आउटपुट करने के लिए भी किया जा सकता है। यह एक स्टैंडअलोन घटक है जिसे आसानी से किसी भी PHP परियोजना में एकीकृत किया जा सकता है।
यह कई उत्कृष्ट सुविधाएँ प्रदान करता है:
- HTML के लिए ऑटोसोर्डिंग (XSS को रोकने में मदद करता है)
- सिंटैक्स को टेम्प्लेटिंग को ध्यान में रखकर बनाया गया है (जो जांगो टेम्प्लेट पर आधारित)
- खाका वंशानुक्रम
- मैक्रो
ट्विग के सिंटैक्स का उदाहरण:
{% 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 %}
परिचय
आप इस तरह के रूप में अन्य पाठ आधारित टेम्पलेट भाषाओं, के लिए किसी भी जोखिम है, तो चतुर , Django , या जिंजा , आप के साथ घर जैसा महसूस करना चाहिए टहनी । यह PHP के सिद्धांतों से चिपके हुए और templating वातावरण के लिए उपयोगी कार्यक्षमता जोड़कर डिज़ाइनर और डेवलपर दोनों के अनुकूल है।
मुख्य विशेषताएं हैं ...
- फास्ट: ट्विग ने सादे अनुकूलित PHP कोड के लिए टेम्पलेट्स संकलित किया। नियमित PHP कोड की तुलना में ओवरहेड को बहुत कम कर दिया गया था।
- सुरक्षित: अविशिष्ट टेम्पलेट कोड का मूल्यांकन करने के लिए टहनी में सैंडबॉक्स मोड है। यह Twig को उन अनुप्रयोगों के लिए एक टेम्पलेट भाषा के रूप में उपयोग करने की अनुमति देता है जहां उपयोगकर्ता टेम्पलेट डिज़ाइन को संशोधित कर सकते हैं।
- लचीला: टहनी एक लचीले लेसर और पार्सर द्वारा संचालित होती है। यह डेवलपर को अपने स्वयं के कस्टम टैग और फ़िल्टर को परिभाषित करने और अपनी खुद की डीएसएल बनाने की अनुमति देता है।
टहनी जैसे कई ओपन-सोर्स परियोजनाओं द्वारा प्रयोग किया जाता है Symfony , Drupal , eZpublish और कई व्यवस्थाएं रूप में अच्छी तरह है जैसे कि यह के लिए समर्थन स्लिम , Yii , Laravel , Codeigniter , SILEX और Kohana - बस कुछ ही नाम है।
स्थापना
Twig स्थापित करने के लिए अनुशंसित तरीका संगीतकार के माध्यम से है:
Php के लिए 5.x उपयोगकर्ता
composer require "twig/twig:~1.0"
Php 7.x उपयोगकर्ताओं के लिए
composer require "twig/twig:~2.0"