DevToolPal
RU

Форматирование PHP

Форматирование PHP-кода в стиле PER Coding Style (PSR-12) с официальным плагином Prettier для PHP.

Работает локально, без загрузки на сервер

Параметры

Отступ
Фигурные скобки

Ввод

Символов: 0 · 0 B

Результат

Символов: 0 · 0 B

Что делает этот инструмент

Форматтер PHP превращает неряшливый, минифицированный или непоследовательно отформатированный PHP-код в чистый код, соответствующий принятому в сообществе стандарту. Он поддерживает современный синтаксис, включая типизированные и readonly-свойства, продвижение параметров конструктора, стрелочные функции, перечисления (enum), выражения match и атрибуты.

Под капотом работает Prettier с официальным плагином для PHP — та же связка, которую многие команды на Laravel и Symfony используют в редакторах и pre-commit-хуках, поэтому результат совпадёт с тем, что выдали бы ваши инструменты.

Как пользоваться

  1. Вставьте PHP-код или откройте файл .php. Открывающий тег <?php для коротких фрагментов необязателен.
  2. Отформатированный код появляется справа по мере ввода.
  3. Настройте параметры:
    • Отступ: 4 пробела — стандарт PSR; также доступны 2 пробела и табуляция.
    • Ширина строки: строки длиннее этого значения переносятся там, где позволяет синтаксис.
    • Фигурные скобки: скобки классов и функций ставятся на следующей строке (PER / PSR-12) или на той же строке.
    • Версия PHP: самая старая версия, на которой должен работать код.
    • Одинарные кавычки и Завершающие запятые для многострочных списков.
  4. Скопируйте или скачайте результат.

Если в коде есть синтаксическая ошибка, в сообщении указано, что ожидал парсер, а также строка и столбец, где он остановился.

Пример

В примере — контроллер в стиле Laravel, где всё свалено в кучу: групповой оператор use, массив в свойстве, продвижение параметров конструктора, вызов валидации, if, записанный в одну строку, и array_map со стрелочной функцией. После форматирования фигурная скобка каждого метода переносится на отдельную строку, вокруг операторов и => появляются пробелы, тело if разворачивается, а длинные вызовы response()->json() переносятся по одному элементу массива на строку с завершающими запятыми.

Что инструмент не меняет

Форматтер меняет только оформление. Он не переименовывает переменные, не переупорядочивает операторы use, не преобразует array() в короткий синтаксис и не исправляет логику. Комментарии, включая блоки PHPDoc, сохраняются и получают отступ вместе с окружающим кодом.

Советы

  • Используйте те же ширину строки и версию PHP, что и в конфигурации Prettier или PHP-CS-Fixer вашего проекта, чтобы избежать лишних изменений в диффах.
  • Фрагмент, скопированный из лога или стектрейса, после форматирования читать гораздо проще.
  • Если делитесь кодом в issue, сначала отформатируйте его, чтобы ревьюеры могли сосредоточиться на том, что он делает.

Частые вопросы

› Какому стилю кодирования следует инструмент?

По умолчанию результат соответствует PER Coding Style — преемнику PSR-12, опубликованному PHP-FIG. Фигурные скобки классов и методов переносятся на отдельную строку, скобки управляющих конструкций остаются на той же строке, а отступ составляет четыре пробела.

› Почему важна версия PHP?

Некоторый синтаксис допустим только начиная с определённой версии. Например, завершающие запятые в списках параметров требуют PHP 8.0, поэтому для более старой целевой версии форматтер их не ставит. Выбирайте самую старую версию, на которой должен работать ваш код.

› Можно ли форматировать файлы, где смешаны HTML и PHP?

Да. Поддерживаются файлы шаблонов со встроенным HTML и короткими тегами echo. Части на PHP форматируются, а HTML между ними остаётся без изменений.

› Загружается ли мой код на сервер?

Нет. Форматтер полностью работает в вашем браузере, и ничего не отправляется на сервер.