我将使用twig作为公共服务的邮件模板引擎。 我遇到的问题是,如果用户未完成twig变量标签 - 这将导致异常并将制动系统。
Hello, {{ name *(instead {{ name }})*
message body
我有什么方法可以忽略twig语法中的错误吗?
答案 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
}