我正在使用Twig 1.28.2,我有以下问题:
在生产模式下(debug = false,strict_variables = false),twig只是忽略模板中未定义的变量。
在开发模式下,twig会抛出Twig_Error_Runtime
异常,除非我在某处捕获异常,否则会停止呈现页面。
我希望得到一个通知,就像PHP对未定义的php变量一样,所以我可以在开发和生产模式下记录这些通知,以便稍后进行分析。
我可以为Twig_Error_Runtime
定义一个异常处理程序,但是在许多其他上下文中抛出了这种类型的异常,而不仅仅是未定义的变量。因此,捕获此异常并继续执行代码可能不是最好的主意。
我查看了twig代码,它看起来并不是很有意义:
final protected function getContext($context, $item, $ignoreStrictCheck = false)
{
if (!array_key_exists($item, $context)) {
if ($ignoreStrictCheck || !$this->env->isStrictVariables()) {
return;
}
throw new Twig_Error_Runtime(sprintf('Variable "%s" does not exist.', $item), -1, $this->getTemplateName());
}
return $context[$item];
}
任何想法如何解决这个问题?