【问题标题】:Does PSR-2 require vertical alignment?PSR-2 是否需要垂直对齐?
【发布时间】:2017-04-19 14:55:18
【问题描述】:

这两者之间允许什么:

$value = 'value';
$user = 'John';
$timestamp = 1480927909;
$day = date('Y-m-d', $timestamp);

$value     = 'value';
$user      = 'John';
$timestamp = 1480927909;
$day       = date('Y-m-d', $timestamp);

【问题讨论】:

  • 据我所知,它不需要它。唯一必须垂直对齐的是 phpdoc 标签,但这超出了 psr-2 规范
  • Imo,它大大提高了可读性,所以我总是做这种对齐。
  • @DanFromGermany - 它仅在名称长度大致相同的情况下提高可读性。一旦您需要使用其中一个或两个元素的名称比其他元素长得多的数据集来执行此操作,它实际上就会开始降低可读性。如果您将来需要调整= 符号的偏移量,它也可能会影响您的差异。由于这些原因,我有时喜欢使用这种对齐方式,但肯定不是总是这样。
  • 这些的可读性是高度主观的。对我来说,对齐的版本比单个空格字符缩进的版本可读性差得多。甚至不考虑函数参数和参数的类似原则..
  • Robert "Uncle Bob" Martin 在 Clean Code 中很有说服力地反对这种水平对齐方式:“......你很想阅读变量名列表而不看在[价值观]。”我觉得这是真的。我从左到右、从上到下阅读了未对齐的示例,但首先从上到下阅读了对齐的示例,然后是从左到右。就像[$value, $user, $timestamp, $day] = ['value', 'John', 1480927909, date('Y-m-d', $timestamp)],很难理解。

标签: php psr-2


【解决方案1】:

PSR-2 没有针对这种行间对齐的具体规则:

来自PSR-2 Conclusion

有许多风格和实践元素本指南有意省略。这些包括但不限于:

  • 全局变量和全局常量的声明
  • 函数声明
  • 运算符和分配
  • 行间对齐
  • 评论和文档块
  • 类名前缀和后缀
  • 最佳做法

未来的建议可能会修改和扩展本指南,以解决这些或其他风格和实践元素。

不管怎样,行间对齐是 PHP-FIG 小组的discussed for PSR-1,但从最终版本中删除:

原始的长格式 PSR-1 涵盖了行间对齐、全局、三元、赋值和许多其他内容。那些最终因各种原因被删除;他们的墓志铭在 PSR-2 的结尾。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多