如何根据编码标准在 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代码做的那样。我只是不确定这是否是推荐的做法。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>

单行重新格式化的一个问题是,许多混乱检测器和 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>