Требуется ли для PSR-2 вертикальное выравнивание?

Что разрешено между этими двумя:

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

or

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

person Marko Milivojevic    schedule 05.12.2016    source источник
comment
насколько я знаю, это не требуется. единственное, что должно быть выровнено по вертикали, это теги phpdoc, но это выходит за рамки спецификации psr-2.   -  person Federkun    schedule 05.12.2016
comment
Имо, это значительно улучшает читаемость, поэтому я всегда делаю такое выравнивание.   -  person Daniel W.    schedule 05.12.2016
comment
@DanFromGermany - это улучшает читаемость только в тех случаях, когда имена примерно одинаковой длины. Как только вам нужно сделать это с набором данных, в котором один или два элемента имеют имена, которые намного длиннее, чем другие, это может фактически начать снижать читабельность. Он также может испортить ваши дифференциалы, если вам нужно будет отрегулировать смещение знака = в какой-то момент в будущем. По этим причинам мне нравится иногда использовать этот тип выравнивания, но, конечно, не всегда.   -  person Simba    schedule 05.12.2016
comment
Спасибо, ребята, я заметил, что Laravel 5.1, 5.2 и 5.3 используют PSR-2, но вертикальное выравнивание удалено из последней версии 5.3, поэтому кажется, что оно не указано в стандарте PSR-2.   -  person Marko Milivojevic    schedule 05.12.2016
comment
Их читабельность очень субъективна. Для меня выровненная версия гораздо менее удобочитаема, чем версия с отступом в один пробел. Даже не говоря об аналогичном принципе для аргументов и параметров функций.   -  person helvete    schedule 13.04.2018
comment
Роберт Дядя Боб Мартин убедительно возражает против подобного горизонтального выравнивания в Clean Code: ... у вас возникает соблазн прочитать список имен переменных, не глядя на [значения]. Я считаю, что это правда. Я читаю невыровненный пример слева направо, сверху вниз, но выровненный пример сначала сверху вниз, а затем слева направо. Это как [$value, $user, $timestamp, $day] = ['value', 'John', 1480927909, date('Y-m-d', $timestamp)], что трудно понять.   -  person CJ Dennis    schedule 30.11.2018


Ответы (1)


В PSR-2 нет особых правил для такого межстрочного выравнивания:

Из Заключение PSR-2:

Многие элементы стиля и практики намеренно опущены в этом руководстве. К ним относятся, но не ограничиваются:

  • Объявление глобальных переменных и глобальных констант
  • Декларация функций
  • Операторы и присваивание
  • Выравнивание между строк
  • Блоки комментариев и документации
  • Префиксы и суффиксы имени класса
  • Лучшие практики

Будущие рекомендации МОГУТ пересмотреть и расширить это руководство, чтобы учесть те или иные элементы стиля и практики.

Как бы то ни было, межстрочное выравнивание обсуждалось для PSR-1 группой PHP-FIG, но в окончательной версии он был удален:

Первоначальная длинная форма PSR-1 описывала межстрочное выравнивание, глобальные переменные, тернарные операции, присваивание и многое другое. В итоге они были удалены по разным причинам; их эпитафия находится в заключении ПСР-2.

person Kirk Beard    schedule 05.12.2016