0
我写了一个定制的树枝TagTokenParser让我在我的模板写:如何解析枝条自定义标签参数
{% tag "tagtype" argument1="value1" argument2="value3" %}{% endtag %}
它的工作原理,但我想放动态属性值:
{% tag "tagtype" argument1="{{ myVar.myProp }}" argument2="value3" %}{% endtag %}
这里是我写我的TagTokenParser:
while (!$stream->test(\Twig_Token::BLOCK_END_TYPE)) {
if ($stream->test(\Twig_Token::NAME_TYPE)) {
// Read the attribute name
$name = $stream->next()->getValue();
// Read the "="
$stream->expect(\Twig_Token::OPERATOR_TYPE, '=');
// Read the attribute value
$token = $stream->expect(\Twig_Token::STRING_TYPE);
$value = $token->getValue();
如何可以解析表达式在\繁体定位ig_Token :: STRING_TYPE标记并将其写入我的TagNode编译器中?
我尝试解析表达式作为新的字符串,但是当我失去编译时,它的背景:
$parameters = $this->parser->getEnvironment()->tokenize($attribute_value);
还是有方法来解析参数值作为体现在哪里?像这样:
$value = $parser->getExpressionParser()->parseExpression();
非常感谢您的帮助!
谢谢!我现在明白需要将参数值解析为一个表达式,然后将其在我的'Node'中进行子编译。 但是,是否有可能解析表达式在“...”模式?例如:'“{{myVar.myProp}}”'?使用类似'$ stream-> skipToken('''); $ value = $ parser-> getExpressionParser() - > parseExpression(); $ stream-> skipToken(''');'? – aprovent 2014-12-03 10:05:12
您可以使用'“#{myVar.myProp}”'进行字符串插值。 – 2014-12-03 10:06:58