树枝模板未完成的标签

时间:2014-04-14 18:29:06

标签: variables tags twig

我将使用twig作为公共服务的邮件模板引擎。 我遇到的问题是,如果用户未完成twig变量标签 - 这将导致异常并将制动系统。

Hello, {{ name  *(instead {{ name }})*

message body 

我有什么方法可以忽略twig语法中的错误吗?

1 个答案:

答案 0 :(得分:2)

作为选项,您可以使用 registerUndefinedFunctionCallback registerUndefinedFilterCallback

来抑制Twig_Error_Syntax 你可以尝试这样的事情:

$twig->registerUndefinedFunctionCallback(function ($name) { 

   if (function_exists($name)) {
    return new Twig_Function_Function($name);
   }

   return false; 
});

它应该返回false。

或其他方式只是捕获异常,在twig尝试解析时:

try {

   $twig->parse($twig->tokenize($template));


} catch (Twig_Error_Syntax $e) {

    // here you are    

}