Код нужно оформлять определённым образом, чтобы он был достаточно понятным и простым в поддержке. Специальные наборы правил — стандарты — описывают различные аспекты написания кода. Конкретно в 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

Tags

Нет комментариев

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.