Использовать функцию PHP в TWIG?

В шаблонах PHP я могу использовать php-функции, например:

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

Как я могу сделать это в TWIG?

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

Как мне это достичь?

Вам нужны функции или фильтры . Вы можете легко добавить их, используя примеры.

 // $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'); 

Существует уже расширение Twig, которое позволяет вам вызывать функции PHP из ваших шаблонов Twig, например:

 Hi, I am unique: {{ uniqid() }}. And {{ floor(7.7) }} is floor of 7.7. 

См. Официальный репозиторий .

Если вы работаете в symfony 2, это также должно помочь. Концепция такая же, но вы помещаете код в другое место и отформатируете ее несколько иначе.

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