PSR-2 Открывающие распорки для структур управления

Одна вещь, которую я пытаюсь понять, почему PSR2 в новой строке есть фигурные скобки для класса и метода, а для остальных нет. Я бы сказал, что намного проще читать код, если фигурные скобки всегда находятся на новой строке.

class Foo extends Bar implements FooInterface
{
public function sampleFunction($a, $b = null)
{
if ($a === $b) {
}

Может кто-нибудь объяснить, в чем заключается логика:

Открывающие скобки для управляющих структур ДОЛЖНЫ идти на той же строке, а закрывающие скобки ДОЛЖНЫ идти на следующей строке после тела.

1

Решение

Мое понимание здесь основано на том, чтобы блоки смежного кода не становились слишком длинными.

Например, скажем, у меня есть функция из 50 строк, написанная в стиле PSR-2. Если эта функция содержит 10 if() условия и 5 циклов, тогда моя функция по вашим правилам будет 65 строк.

Поскольку это отдельная функция, мне нужно иметь возможность работать с ней как с единым целым, поэтому очень полезно иметь возможность видеть все сразу. С функцией с 50 линиями это возможно. Становится намного сложнее, если функция имеет длину 65 строк.

Фактически, глядя на мое окно редактора прямо сейчас, я вижу 30 строк за раз, поэтому даже 50-строчную функцию слишком сложно управлять, не меняя размеры или удаляя закрепленные панели в моей IDE.

Теперь я знаю, что правила чистого кода сказали бы, что функция из 50 строк в любом случае слишком длинная и должна быть реорганизована. Я бы согласился с этим. Но угадайте, что: функции с 50 или более строками довольно распространены; Мне приходится иметь дело с ними все время, и чем меньше в них ненужного пустого пространства, тем легче с ними работать.

В конечном счете, однако, это только одна интерпретация основных причин этого.

Настоящая причина PSR-2 заключается в том, что именно так упал консенсус. Они опросили все фреймворки и другие, которые установили стандарты кодирования PHP. Все эти разные стандарты существовали, потому что люди садились и думали о том, как лучше всего отформатировать свой код. Они не согласились, потому что это самоуверенный вопрос, но были широкие области согласия, и именно это вошло в формирование стандартов PSR.

2

Другие решения

Некоторые причины.

  1. Демократия / Народное мнение. Опрос был взят из числа PHP-фиг и этот стиль скобок — то, что использовало большинство тех проектов. Вы можете прочитать больше, Пол М Джонс здесь (ищите «брекеты»).
  2. Историческое использование. Этот стиль известен как К&р, для Кернигана и Ричи, который широко распространен в Си (по разным причинам, см. статью в Википедии). PHP, как и многие языки, находится под сильным влиянием C как в синтаксисе, так и в стиле. (Также PHP написан в основном на C!)
  3. Визуальное различие. При сканировании больших участков кода легче определить, где начинаются функции и классы, и отличить их от блоков управления.
1

По вопросам рекламы [email protected]