twig
फैली हुई टहनी
खोज…
टिप्पणियों
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 }}