← Назад в словарь

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