如何根据编码标准格式化 Twig 模板中的长行?

How do I format long lines in Twig templates, according to coding standards?

我的模板中有以下代码,我在其中生成带有参数的路由:

<a class="btn btn-block btn-abcd" href="{{ path(
    'auth.login',
    {
        'type': constant('User::TYPE_CANDIDATE'),
        'provider': constant('UserProvider::PROVIDER_XING')
    }
) }}">...</a>

我按照使用 PHP 代码的方式将其分成几行。我只是不确定这是否是推荐的做法。 coding standards page on the Twig site 没有解决这个具体问题。

一种常用的提高可读性的技巧是,每当您觉得需要缩短行时,您都可以在空 parenthesis/bracket/brace 处进行。不一定对所有这些,但一个是有意义的。

这是我的建议:

<a class="btn btn-block btn-abcd"
    href="{{ path(
        'auth.login', {
            'type': constant('User::TYPE_CANDIDATE'),
            'provider': constant('UserProvider::PROVIDER_XING')
        }
    ) }}">
    Link text
</a>

单行重新格式化的一个问题是,许多混乱检测器和 linters 会嘲笑长度超过 50 个字符的行。

我建议按照您最初建议的通用 PHP 规则进行拆分 - 只需将 {{{% 等 Twig 标签与 <?php 标签一样对待。

我的项目遵循的标准可在此处获取:https://github.com/cybtachyon/twig-standards

我重新格式化了 Alec 的答案以遵循更多上述 Twig 标准。

<a class="btn btn-block btn-abcd" href="{{
  path(
    'auth.login',
    {
      'type': constant('User::TYPE_CANDIDATE'),
      'provider': constant('UserProvider::PROVIDER_XING'),
    }
  )
  }}">
    Link text
</a>