Код нужно оформлять определённым образом, чтобы он был достаточно понятным и простым в поддержке. Специальные наборы правил — стандарты — описывают различные аспекты написания кода. Конкретно в PHP самым распространенными являются стандарты PSR (PHP Standards Recommendations или стандартные рекомендации PHP) от PHP-FIG. Рекомендация представляет из себя набор правил, призванных облегчить определённую сторону разработки (или решить какую-то определённую проблему). На текущий момент существует несколько утверждённых рекомендаций, каждая из них обозначена цифрой: PSR-1, PSR-2, PSR-3 и другие. Со всеми этими рекомендациями вы будете постепенно знакомиться во время обучения и работы. Сейчас же остановимся на двух основных:
PSR-1: Basic Coding Standard (Базовый стандарт написания кода). Это набор правил, определяющих, как следует оформлять программный код: как писать теги PHP, по каким правилам именовать классы, методы и константы классов. Он также затрагивает вопросы кодировки, автозагрузки, пространства имён и разделения ответственности между файлами. Это базовые правила, стандарт PSR-12 их расширяет.
PSR-12: Extended Coding Style (Расширенный стандарт стиля кодирования, заменяет и дополняет устаревший PSR-2). Во-первых, этот стандарт требует выполнения правил PSR-1. Во-вторых, он добавляет множество новых требований: к отступам, файлам, строкам, ключевым словам, классам, управляющим конструкциям, области видимости и другим элементам.
В любом языке программирования существуют специальные инструменты, так называемые линтеры, которые проверяют код на соответствие стандартам. Повсеместно используемым линтером в PHP является PHP_CodeSniffer (2).
Допустим, у нас есть файл с таким PHP-кодом:
<?php
// На следующей строке отступ равен одному табу
print_r (((8 / 2) + 5) - (-3 / 2));
?>
При проверке файла линтер найдёт следующие ошибки:
Spaces must be used to indent lines; tabs are not allowed — PSR-12
рекомендует делать отступ размером в четыре пробела, а в примере выше использована табуляция
A closing tag is not permitted at the end of a PHP file
— стандарт содержит требование опускать завершающий тег ?>
Space before opening parenthesis of function call prohibited — при вызове функции между именем функции и круглыми скобками не должно быть пробельных символов, а в проверяемом коде после имени print_r стоит один пробел
Исправим код, убрав закрывающий тег, отступы и пробел после имени функции:
<?php
print_r(((8 / 2) + 5) - (-3 / 2)); // => 10.5
?>
Этот вариант уже не нарушает правил, и линтер будет «молчать».
Не «пугайтесь» обилию рекомендаций и правил. Большинство правил просты и понятны. Скорее всего, вы и так будете интуитивно придерживаться их в коде. С остальными вам помогут справиться время, опыт и линтер
Источники:
(1) https://ru.code-basics.com/languages/php/lessons/linting#editor
(2) PHP code sniffer: https://github.com/squizlabs/PHP_CodeSniffer
Нет Ответов