我正在写一个 twig 标签,我想告诉 Tokenizer 标签 first Argument 是一个常量而不是表达式。
例如,假设我的标签是 "echo" 的别名:
{% tagname 'toto' %}
应该产生“toto”(没有引号)
{% tagname toto %}
还应该产生“toto”(无引号)
{% tagname toto.xx %}
应该产生“toto.xx”(无引号)
问题出在最后一个示例中,令牌解析器将“toto”视为表达式,因此查找名为“toto”的变量。
所以我想知道是否有可能以某种方式指定标签参数必须是一个常量?
我的代码现在的样子:
public function parse(\Twig_Token $token)
{
$parser = $this->parser;
$stream = $parser->getStream();
$text = $parser->getExpressionParser()->parseStringExpression();
我还尝试了 ExpressionParser 中的 parsePrimaryExpression、parseHashExpression(这是错误吗?)
提前致谢