twig.sensiolabs.org/doc/advanced.html
<?php defined('SYSPATH') or die('No direct script access.');
class My_Twig_Extension extends Twig_Extension {
public function getName()
{
return 'my_twig';
}
public function getFilters()
{
return array();
}
public function getFunctions()
{
return array(
'get_article' => new Twig_Function_Method($this, 'get_article',
array('is_safe' => array('html'))),
);
}
function get_article($id) {
//делаем выборку из БД и записываем в result
return $result;
}
public function getTests()
{
return array();
}
}
В конфиге твига:
<?php defined('SYSPATH') or die('No direct script access.');
return array(
'default' => array(
'extensions' => array(
'My_Twig_Extension',
),
),
);