如何让twig在模板中的undefined var上发出通知

时间:2017-12-03 17:11:50

标签: php symfony twig

我正在使用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];
    }

任何想法如何解决这个问题?

0 个答案:

没有答案