dpdx51205 2014-11-28 15:37
浏览 72
已采纳

检查字符串是否具有有效的Twig语法

Simple, in a Symfony2 app, inside a function of a service class, I want to check if a given string passed as argument has valid Twig syntax...

public function checkIfValidTwig($twigString)
{
    $isValid = false;
    $isValid = someWay->toCheckIf()->itIsValid($twigString);
    return $isValid;
}

Any idea?

  • 写回答

2条回答 默认 最新

  • dth42345 2014-11-28 16:38
    关注

    You can use Twig_Environment::tokenize(), which will throw an exception Twig_Error_Syntax if the Twig code cannot be parsed - http://twig.sensiolabs.org/doc/internals.html#the-lexer

    class TwigValidator
    {
        /**
         * @var \Twig_Environment
         */
        private $twig;
    
        /**
         * @param \Twig_Environment $twig
         */
        public function __construct(\Twig_Environment $twig)
        {
            $this->twig = $twig;
        }
    
        /**
         * @param string $twigString
         *
         * @return boolean
         */
        public function checkIfValidTwig($twigString)
        {
            try {
                $this->twig->tokenize($twigString);
    
                return true;
            } catch (\Twig_Error_Syntax $e) {
    
                return false;
            }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题