2011-11-18 21 views
14

पीएचपी टेम्पलेट्स मैं उदाहरण के लिए php कार्यों का उपयोग कर सकते हैं, में:TWIG में PHP फ़ंक्शन का उपयोग करें?

foreach ($users as $user){ 
    echo someFunction($user->getName()); 
} 

मैं इसे कैसे TWIG में कर सकते हैं?

{% for user in users %} 
    * {{ user.name }} 
{% else %} 
    No user have been found. 
{% endfor %} 

मैं इसे कैसे प्राप्त करूं?

उत्तर

12

आपको क्या चाहिए functions या filters। आप उदाहरणों का उपयोग करके इन्हें आसानी से जोड़ सकते हैं।

+2

क्या आप कार्यान्वयन के बारे में कुछ विवरण शामिल कर सकते हैं? क्या "Twig_Environment" वर्ग के फ़ंक्शन और तत्कालता को नियंत्रक में शामिल किया जाना चाहिए? ऑब्जेक्ट "$ twig = new Twig_Environment ($ loader)" को एक चर के रूप में पारित किया जाना चाहिए (उदा। 'Twig' => $ twig) प्रस्तुत टेम्पलेट में? "$ Loader = new Twig_Loader_Filesystem ('/ path/to/templates') परिभाषा में"/path/to/templates "में क्या शामिल होना चाहिए;"। क्या यह मेरे बंडल में टेम्पलेट्स का मार्ग है? क्या इसे पूर्ण होने की आवश्यकता है? यह मेरे लिए काम नहीं करता है। एक उदाहरण की सराहना की जाएगी ... – RayOnAir

+0

यहां आने वाले किसी भी व्यक्ति और उदाहरण के लिए, सेंसिओलाब पर ट्विग दस्तावेज़ में एक बहुत अच्छा और सरल उदाहरण है: http://twig.sensiolabs.org/doc/advanced.html# फ़ंक्शन – h00ligan

0

यदि आप सिम्फनी 2 में काम कर रहे हैं तो इससे भी मदद मिलनी चाहिए। अवधारणा एक जैसी है लेकिन आप कहीं और कोड डालते हैं और इसे थोड़ा अलग तरीके से प्रारूपित करते हैं।

http://symfony.com/doc/2.0/cookbook/templating/twig_extension.html

9
// $twig is a Twig_Environment instance. 

$twig->registerUndefinedFunctionCallback(function($name) { 
    if (function_exists($name)) { 
     return new Twig_SimpleFunction($name, function() use($name) { 
      return call_user_func_array($name, func_get_args()); 
     }); 
     return false; 
    } 
}); 

एक टहनी टेम्पलेट में:

{{ explode(",", "It's raining, cats and dogs.").0 | raw }} 

इस वसीयत उत्पादन "यह बारिश हो रही है"। डिफ़ॉल्ट रूप से, लौटे गए मूल्य Twig में भाग गए हैं।

Twig_SimpleFunction उपयोग करने के लिए पसंदीदा वर्ग है। Twig में अन्य सभी फ़ंक्शन से संबंधित वर्ग 1.12 (2.0 में निकाले जाने के बाद) से बहिष्कृत हैं।

एक Symfony2 नियंत्रक में:

$twig = $this->get('twig'); 
+0

यह मानक symfony2 ऐप में पंजीकृत होना चाहिए? – gondo

+0

इसे कभी भी कभी भी असुरक्षित नहीं होने चाहिए, कभी भी इसका उपयोग नहीं किया जाना चाहिए। –

+0

वास्तव में नहीं, यह अचानक एक WordPress में बदल नहीं जाता है। लेकिन टेम्पलेट्स को उपलब्ध डेटा का उपयोग करके केवल HTML/जावास्क्रिप्ट प्रस्तुत करना चाहिए। –

1

वहां पहले से ही है एक टहनी विस्तार आप कॉल पीएचपी कार्यों की तरह अपने टहनी टेम्पलेट्स फार्म देता है कि:

Hi, I am unique: {{ uniqid() }}. 

And {{ floor(7.7) }} is floor of 7.7. 

देखें आधिकारिक extension repository

संबंधित मुद्दे