PSR-12
PSR-12 — расширенное руководство по стилю кода
Суть в одном предложении
PSR-12 задаёт расширенные правила оформления PHP-кода (отступы, скобки, длина строки) и требует соблюдения PSR-1.
Краткое определение
PSR-12 (Extended Coding Style Guide) — стандарт PHP-FIG по стилю кода: отступы 4 пробела, фигурные скобки на новой строке для классов и методов, ограничение длины строки, правила для use, объявлений свойств и методов, массивов и т.д. Заменяет устаревший PSR-2 и опирается на PSR-1.
Оригинал и перевод
- Язык: английский
- Оригинал: PSR-12: Extended Coding Style Guide
- Буквальный перевод: расширенное руководство по стилю кода
Синонимы и варианты написания
- PSR-12
- PSR12
- Extended Coding Style Guide
Происхождение
Принят PHP-FIG как замена PSR-2 (deprecated). PHP_CodeSniffer и PHP-CS-Fixer поддерживают правила PSR-12; многие проекты указывают в конфиге "psr-12" или эквивалент.
Где используется
- Современные PHP-проекты и открытые библиотеки
- PHP_CodeSniffer, PHP-CS-Fixer (правило PSR12)
- CI и pre-commit хуки для проверки стиля
Когда это важно
При совместной разработке и при подключении библиотек: единый стиль упрощает чтение и слияния. Нарушение PSR-12 часто считается техническим долгом и правится автоматически форматтером.
Подробное объяснение
PSR-12 уточняет: объявление файла (<?php, строгая типизация); блоки use и их порядок; объявление класса и интерфейса (скобка с новой строки); свойства и методы (видимость, статика, типы); отступы и переносы в массивах и аргументах; пробелы вокруг операторов. Явно требуется соответствие PSR-1. Это только стиль, не архитектура.
Аналоги и связанные термины
- PSR-1 — базовый стандарт; PSR-12 его расширяет
- PSR-2 — устарел, заменён PSR-12
- PHP_CodeSniffer, PHP-CS-Fixer — инструменты проверки и применения PSR-12
Пример использования
«В проекте включён PHP-CS-Fixer с правилом PSR-12 — перед коммитом код автоматически приводится к стилю.»
Мини‑FAQ
- PSR-2 и PSR-12 — нужно ли соблюдать оба?
Ответ: Нет. PSR-2 помечен как deprecated; достаточно PSR-12, который его заменяет и включает актуальные правила.
Смотри также
- PSR-1
- PSR-4
- PHP_CodeSniffer
- PHP-CS-Fixer