$data['TwigRef'] = new TheClass();
class TheClass
{
public function __call($name, $arguments) {
return call_user_func_array(array('TheClass', $name), $arguments);
}
...
}
Можно использовать, например,
{{ TwigRef.myMethod(optional params) }}
Наверное, лучше добавить дополнительные проверки, чтобы вызываемые вызываемые функции вызывались.
Ответ 2
Вы можете динамически добавлять функции в свои шаблоны ветки, регистрируя их. Либо они уже вызываются, либо вы используете свою статическую функцию по собственному имени:
$twig = new Twig_Environment($loader);
$twig->addFunction('functionName', new Twig_Function_Function('someFunction'));