Одна вещь, которую я пытаюсь понять, почему PSR2 в новой строке есть фигурные скобки для класса и метода, а для остальных нет. Я бы сказал, что намного проще читать код, если фигурные скобки всегда находятся на новой строке.
class Foo extends Bar implements FooInterface
{
public function sampleFunction($a, $b = null)
{
if ($a === $b) {
}
Может кто-нибудь объяснить, в чем заключается логика:
Открывающие скобки для управляющих структур ДОЛЖНЫ идти на той же строке, а закрывающие скобки ДОЛЖНЫ идти на следующей строке после тела.
Мое понимание здесь основано на том, чтобы блоки смежного кода не становились слишком длинными.
Например, скажем, у меня есть функция из 50 строк, написанная в стиле PSR-2. Если эта функция содержит 10 if()
условия и 5 циклов, тогда моя функция по вашим правилам будет 65 строк.
Поскольку это отдельная функция, мне нужно иметь возможность работать с ней как с единым целым, поэтому очень полезно иметь возможность видеть все сразу. С функцией с 50 линиями это возможно. Становится намного сложнее, если функция имеет длину 65 строк.
Фактически, глядя на мое окно редактора прямо сейчас, я вижу 30 строк за раз, поэтому даже 50-строчную функцию слишком сложно управлять, не меняя размеры или удаляя закрепленные панели в моей IDE.
Теперь я знаю, что правила чистого кода сказали бы, что функция из 50 строк в любом случае слишком длинная и должна быть реорганизована. Я бы согласился с этим. Но угадайте, что: функции с 50 или более строками довольно распространены; Мне приходится иметь дело с ними все время, и чем меньше в них ненужного пустого пространства, тем легче с ними работать.
В конечном счете, однако, это только одна интерпретация основных причин этого.
Настоящая причина PSR-2 заключается в том, что именно так упал консенсус. Они опросили все фреймворки и другие, которые установили стандарты кодирования PHP. Все эти разные стандарты существовали, потому что люди садились и думали о том, как лучше всего отформатировать свой код. Они не согласились, потому что это самоуверенный вопрос, но были широкие области согласия, и именно это вошло в формирование стандартов PSR.
Некоторые причины.