Возможно ли, чтобы функция twig вернула шаблон ветки?
Например
class ToTimeExtension extends \Twig_Extension { public function getFunctions() { return array( 'totime' => new \Twig_Function_Method($this, 'toTime') ); } public function toTime ($string) { $time = strtotime($string); return {"time.html.twig", $time}; //return a twig template and pass $time variable } }
time.html.twig
<h1>{{time}}</h1>
Применение
{{ totime('now') }}
Вы можете получить доступ к среде Twig
если вы установите правильные параметры. Затем вы можете отобразить другой шаблон внутри метода.
class ToTimeExtension extends \Twig_Extension { public function getFunctions() { return array( 'totime' => new \Twig_Function_Method($this, 'toTime', ['needs_environment' => true,]) ); } public function toTime (Twig_Environment $twig, $string) { return $twig->render('time.html.twig', [ 'time' => strtotime($string),]); } }