Twig 更改细枝连接分隔符

Twig 更改细枝连接分隔符,twig,concatenation,delimiter,Twig,Concatenation,Delimiter,twig使用~进行连接,有没有办法将其更改为另一个符号 我知道有一种方法可以更改其他分隔符,如块、注释等,但我没有找到任何关于连接的方法。所以如果有人知道,那就太好了 对于您所谈论的delimeters,TwigLexer仅定义以下符号: $this->options = array_merge(array( 'tag_comment' => array('{#', '#}'), 'tag_block' => array('{%', '%}'), 'ta

twig使用
~
进行连接,有没有办法将其更改为另一个符号


我知道有一种方法可以更改其他分隔符,如块、注释等,但我没有找到任何关于连接的方法。所以如果有人知道,那就太好了

对于您所谈论的delimeters,TwigLexer仅定义以下符号:

$this->options = array_merge(array(
    'tag_comment' => array('{#', '#}'),
    'tag_block' => array('{%', '%}'),
    'tag_variable' => array('{{', '}}'),
    'whitespace_trim' => '-',
    'interpolation' => array('#{', '}'),
), $options);
正如@DarkBee所提到的,您可以使用

您可以在此php类上找到已定义的运算符,以帮助您定义自己的运算符:
vendor/twig/twig/lib/twig/Extension/Core.php
class
twig\u Extension\u 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\u Node\u Expression\u Binary\u Concat
好的,它工作得很好!不过,我还有一个问题。我想要的分隔符是一个分号,这非常有效。然而我的phpstorm不喜欢它,它在它下面加上红色下划线,然后脱色所有剩余的代码。它本身没有给出任何错误,只是我的IDE不喜欢它。有没有办法解决这个问题?我不认为twig或symfony插件支持它。你在用2017.3.4吗?我真的不知道我是否诚实。