Что делает этот инструмент
Форматтер PHP превращает неряшливый, минифицированный или непоследовательно отформатированный PHP-код в чистый код, соответствующий принятому в сообществе стандарту. Он поддерживает современный синтаксис, включая типизированные и readonly-свойства, продвижение параметров конструктора, стрелочные функции, перечисления (enum), выражения match и атрибуты.
Под капотом работает Prettier с официальным плагином для PHP — та же связка, которую многие команды на Laravel и Symfony используют в редакторах и pre-commit-хуках, поэтому результат совпадёт с тем, что выдали бы ваши инструменты.
Как пользоваться
- Вставьте PHP-код или откройте файл
.php. Открывающий тег<?phpдля коротких фрагментов необязателен. - Отформатированный код появляется справа по мере ввода.
- Настройте параметры:
- Отступ: 4 пробела — стандарт PSR; также доступны 2 пробела и табуляция.
- Ширина строки: строки длиннее этого значения переносятся там, где позволяет синтаксис.
- Фигурные скобки: скобки классов и функций ставятся на следующей строке (PER / PSR-12) или на той же строке.
- Версия PHP: самая старая версия, на которой должен работать код.
- Одинарные кавычки и Завершающие запятые для многострочных списков.
- Скопируйте или скачайте результат.
Если в коде есть синтаксическая ошибка, в сообщении указано, что ожидал парсер, а также строка и столбец, где он остановился.
Пример
В примере — контроллер в стиле 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 между ними остаётся без изменений.
› Загружается ли мой код на сервер?
Нет. Форматтер полностью работает в вашем браузере, и ничего не отправляется на сервер.