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