खोज…


टिप्पणियों

Twig में पहले से ही कुछ अंतर्निहित फ़िल्टर और फ़ंक्शन हैं , लेकिन क्या होगा यदि अंतर्निहित सुविधाओं में कमी है या आपको टेम्पलेट में कुछ डिफ़ॉल्ट PHP फ़ंक्शन का उपयोग करना है

कस्टम फ़िल्टर / फ़ंक्शन जोड़ना

/ कार्यों के लिए यहाँ नए फिल्टर को जोड़ने का तरीका पर कुछ उदाहरण हैं twig ,
Twig_Function एस जोड़ने के लिए Twig_Function Twig_Filter वाले के Twig_Filter हैं, बस तदनुसार कीवर्ड बदलें

<?php
   $twig = new Twig_Environment($loader);

   /* You can chain a global function */
   $twig->addFilter(new Twig_SimpleFilter('floor', 'floor'));
   
   /* You can specify a custom function */
   $twig->addFilter(new Twig_SimpleFilter('money', function($value, $currency, $prefix = false, $decimals = 2, $dec_point = "." , $thousands_sep = ",") {
       $value = number_format($value, $decimals, $dec_point, $thousands_sep);
       if ($prefix) return $currency.' '.$value;
       return $value.' '.$prefix;
   });

   /* You can chain an object's method */
   $twig->addFilter(new Twig_SimpleFilter('foo_bar', array($foo, 'bar')));

एक Twig_Extension बनाना

आप अपने सभी कस्टम फ़ंक्शन / फ़िल्टर / परीक्षण / ... को कस्टम Twig_Extension वर्ग के अंदर Twig_Extension :

ProjectTwigExtension

class ProjectTwigExtension extends Twig_Extension {

    public function getFunctions() {
        return array(
            new Twig_SimpleFunction('twig_function_name', array($this, 'getTwigFunctionName')),
            new Twig_SimpleFunction('twig_function_foo', array($this, 'getTwigFunctionFoo')),            
        );



    }
    public function getFilters() {
        return array(
            new Twig_SimpleFilter('twig_filter_name' , array($this, 'getTwigFilterName')),
            new Twig_SimpleFilter('twig_filter_foo' , array($this, 'getTwigFilterFoo')),
        );
    }
    
    public function getName() {
        return 'ProjectTwigExtension';
    }        
}

ट्विग में विस्तार दर्ज करें

$twig = new Twig_Environment($loader);
$twig->addExtension(new ProjectTwigExtension());

अधिक विकल्प आधिकारिक डॉक्स पर पाए जा सकते हैं

जन्मतिथि की सरल तिथि

कैसे ...

1 - विस्तार करने वाले टहनी विस्तार वर्ग का उपयोग करें

use \Twig_Extension

class dobToAge extends \Twig_Extension {

2 - getFilters () विधि को ओवरराइड करके उचित फ़िल्टर जोड़ें

 public function getFilters() {
        return array(
            'age' => new \Twig_Filter_Method($this, 'getAge'),
        );
 }

3 - दिए गए डेट ऑफ बर्थ की आयु प्राप्त करने के लिए कुछ तर्क जोड़ें

 public function getAge($date) 
     {
        if (!$date instanceof \DateTime) {
        // turn $date into a valid \DateTime object or let return
        return null;
         }

     $referenceDate = date('01-01-Y');
     $referenceDateTimeObject = new \DateTime($referenceDate);
     $diff = $referenceDateTimeObject->diff($date);
     return $diff->y;
    }
}

फिर, अपने फ़िल्टर को अनुसरण के रूप में कॉल करें,

{{ yourDateOfBirthInstance | age }}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow