更改 Twig 连接分隔符
change Twig concatenation delimiter
twig 使用 ~
进行连接,有什么办法可以将其更改为另一个符号吗?
我知道有一种方法可以更改其他分隔符,例如块、注释等,但我没有找到任何有关连接的信息。所以,如果有人知道,那就太好了!
对于你所说的分隔符,TwigLexer 只定义了这个符号:
$this->options = array_merge(array(
'tag_comment' => array('{#', '#}'),
'tag_block' => array('{%', '%}'),
'tag_variable' => array('{{', '}}'),
'whitespace_trim' => '-',
'interpolation' => array('#{', '}'),
), $options);
如@DarkBee 所述,您可以使用 https://twig.symfony.com/doc/2.x/advanced.html#operators
定义自己的运算符
您可以在此 php class 上找到已定义的运算符,以帮助您定义自己的运算符:
vendor/twig/twig/lib/Twig/Extension/Core.php
class Twig_Extension_Core::getOperators
您的接线员是
class Project_Twig_Extension extends Twig_Extension
{
public function getOperators()
{
return array(
array(),
array(
'~' => array('precedence' => 40, 'class' => 'Twig_Node_Expression_Binary_Concat', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
),
);
}
// ...
}
twig 使用 ~
进行连接,有什么办法可以将其更改为另一个符号吗?
我知道有一种方法可以更改其他分隔符,例如块、注释等,但我没有找到任何有关连接的信息。所以,如果有人知道,那就太好了!
对于你所说的分隔符,TwigLexer 只定义了这个符号:
$this->options = array_merge(array(
'tag_comment' => array('{#', '#}'),
'tag_block' => array('{%', '%}'),
'tag_variable' => array('{{', '}}'),
'whitespace_trim' => '-',
'interpolation' => array('#{', '}'),
), $options);
如@DarkBee 所述,您可以使用 https://twig.symfony.com/doc/2.x/advanced.html#operators
定义自己的运算符您可以在此 php class 上找到已定义的运算符,以帮助您定义自己的运算符:
vendor/twig/twig/lib/Twig/Extension/Core.php
class Twig_Extension_Core::getOperators
您的接线员是
class Project_Twig_Extension extends Twig_Extension
{
public function getOperators()
{
return array(
array(),
array(
'~' => array('precedence' => 40, 'class' => 'Twig_Node_Expression_Binary_Concat', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
),
);
}
// ...
}