Стандарты кодирования
Стандарт кодирования - Coding Style или Стиль программирования - Programming style.
- Список стандартов кодирования:
- PEAR Coding Standards
- Symfony Coding Standards
- Cake PHP Coding Standards
- DB Medialab PHP Coding Standard
- PHP Coding Guidelines
- GForge: PHP Coding Standards
- PSR-0/1/2 - рекомендации к стандартам оформления кода на PHP принятые группой взаимодействия фреймворков (PHP-FIG)
К стандартам кодирования можно отнести правила именования классов, количество отступов или табуляции.
Обычно каждый класс хранится в отдельно созданном для него файле, вместо того чтобы каждый файл (класс) включать в файл инициализации - применяют функцию автозагрузки. Функция автозагрузки вызывается в тех случаях, когда в сценарии делается попытка создания экземпляра класса, но сам класс к этому времени еще не был загружен. То есть это средство позволяет загружать файлы в сценарий по требованию.
Стандарт PSR-0/1/2 для PHP
Homepage: PSR-0/1/2 и RU: PSR-0/1/2
PSR (Proposing a Standards Recommendation) рекомендации к стандартам оформления кода на PHP принятые группой взаимодействия фреймворков PHP-FIG. Сводную таблицу соответствия требованиям различных PHP проектов стандарту PSR можно посмотреть по ссылке PHP Coding Style Notes.
Стандарт PSR состоит из трех разделов:
- PSR-0 - Стандарт описывает именование классов в пространствах имен (namespace) для их автозагрузки. Имя класса должно содержать путь к файлу с описанием класса, например класс с именем MyClass_Users должен располагаться в директории MyClass и файл должен иметь имя Users.php. Т.е. символ нижнее подчеркивание "_" в имени класса заменяется на DIRECTORY_SEPARATOR (разделитель директорий).
\namespace\package_name\MyClass_Users => /path/to/project/lib/vendor/namespace/package_name/MyClass/Users.php
- PSR-1 - Базовые стандарты оформления кода. Секция описывает общие правила оформления кода.
- Namespaces and classes должны отвечать PSR-0
- Использование только тэгов <?php ?> и <?= ?>
- Только UTF-8 без BOM для PHP кода
- Не допустимо смешивать в одном файле объявления классов, функций, констант и делать echo, ini_set и т.д. Т.е. не мешать все в кучу.
- Именовать классы НадоТак
- Константы класса ДОЛЖНЫ_БЫТЬ_ТАКИМИ
- Методы должны бытьТакими
- PSR-2 - Руководство по Code Style. Ниже только часть правил, остальные смотреть на GitHub.
- Обязан соответствовать PSR-1.
- Для отступов использовать 4 пробела вместо табуляции.
- Желательно, чтобы строка не была длиннее 120 символов.
- Нужно оставить пустую строку после use и блока namespace директив.
- Фигурная скобка ‘{‘ должна быть на следующей строке после объявления имени класса, а закрывающая ‘}’ должна быть на следующей строке после тела класса.
- Тот же порядок соблюдать для функций
- public/protected/private (видимость) объявлять явно у каждого метода и функции класса; abstract/final объявлять до видимости; static объявлять после видимости. Например, final public static boo().
- Разделять пробелом имя управляющей конструкции (if, elseif, while, for, foraech, try-catch) и скобку. Не допустимы пробелы между круглыми скобками и их содержимым. Первая фигурная скобка в конце строки, например:
if ($a === $b) { return false; }
PHP_CodeSniffer
- Homepage: PHP_CodeSniffer
Пакет CodeSniffer позволяет определить отвечает ли ваш код стандарту кодирования, например PEAR, Zend, PSR-1/2 и др. для файлов PHP, JavaScript и Основы работы с CSS. Он также позволяет создать свой стандарт кодирования и применять его к своим проектам. При помощи плагина phpcsmd CodeSniffer интегрируется в Apache NetBeans IDE: Настройка, оптимизация и решение проблем.
- Установка PHP_CodeSniffer из репозитория ОС
# aptitude install php-codesniffer
- Установка PHP_CodeSniffer последней версии из PEAR
# pear install PHP_CodeSniffer # phpcs --version PHP_CodeSniffer version 1.4.0 (stable) by Squiz Pty Ltd. (http://www.squiz.com.au)
- Ключ -i позволяет вывести стандарты кодирования, которые поддерживает пакет CodeSniffer (PHPCS, PSR1, PEAR, Zend, MySource, PSR2, Squiz):
$ phpcs -i The installed coding standards are PHPCS, PSR1, PEAR, Zend, MySource, PSR2 and Squiz
- Проверим файл на соответствие стандарту PEAR Coding Standards и выведем только суммарную информацию
$ phpcs --standard=PEAR --report=summary /tmp/viewfiles.php PHP CODE SNIFFER REPORT SUMMARY -------------------------------------------------------------------------------- FILE ERRORS WARNINGS -------------------------------------------------------------------------------- /tmp/viewfiles.php 25 15 -------------------------------------------------------------------------------- A TOTAL OF 25 ERROR(S) AND 15 WARNING(S) WERE FOUND IN 1 FILE(S) --------------------------------------------------------------------------------
📌 Для тестирования скриптов, установщиков VPN, Python ботов рекомендуем использовать надежные VPS на короткий срок. Если вам нужна помощь с более сложными задачами, вы можете найти фрилансера, который поможет с настройкой. Узнайте больше о быстрой аренде VPS для экспериментов и о фриланс-бирже для настройки VPS, WordPress. 📌
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!
7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Китайский VPN Shadowsocks простая установка и настройка
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах