Laravel Pint — это инструмент для автоматического форматирования PHP-кода, основанный на PHP-CS-Fixer. Он помогает поддерживать единый стиль кода в проекте без ручных правок.
1. Что такое Laravel Pint?
Laravel Pint — это официальный код-форматтер от Laravel, который:
✅ Анализирует PHP-код и исправляет стилистические ошибки.
✅ Работает «из коробки» с предустановленными правилами Laravel.
✅ Гибко настраивается под требования проекта.
2. Зачем нужен Laravel Pint?
- Стандартизация кода — единый стиль для всей команды.
- Экономия времени — автоматическое исправление вместо ручного.
- Интеграция в CI/CD — проверка кода перед коммитом.
- Поддержка PSR-12 — соответствует PHP-FIG стандартам.
3. Пошаговое руководство по подключению Laravel Pint
Установка
composer require laravel/pint --dev
Создание конфига .pint.json
touch .pint.json
Пример конфига (с выравниванием стрелочек в массивах):
{
"preset": "laravel",
"rules": {
"binary_operator_spaces": {
"default": "single_space",
"operators": {
"=>": "align_single_space"
}
},
"array_syntax": {"syntax": "short"},
"no_unused_imports": true,
"ordered_imports": {"sort_algorithm": "alpha"},
"single_quote": true,
"trailing_comma_in_multiline": true,
"no_extra_blank_lines": true
},
"exclude": [
"bootstrap/cache/",
"storage/",
"vendor/"
]
}
Запуск Pint
./vendor/bin/pint --config=.pint.json
4. Набор правил (с пояснениями)
| Правило | Описание | Пример |
|---|---|---|
binary_operator_spaces |
Выравнивание операторов (=, =>, + и др.) |
'key' => 'value' → 'key' => 'value' |
array_syntax |
Использование короткого синтаксиса [] |
array() → [] |
no_unused_imports |
Удаление неиспользуемых use-операторов |
Удаляет лишние импорты |
ordered_imports |
Сортировка импортов по алфавиту | use B; use A; → use A; use B; |
single_quote |
Единообразные кавычки | "text" → 'text' |
trailing_comma_in_multiline |
Трейлинговая запятая | ['a', 'b'] → ['a', 'b',] |
no_extra_blank_lines |
Удаление лишних пустых строк | Убирает двойные \n\n |
5. Опции запуска
--config=.pint.json— явное указание конфига (если он не в корне).--test— проверка без изменений (dry-run).--verbose— детальный вывод.--dirty— проверка только изменённых файлов (git).
Пример:
./vendor/bin/pint --config=.pint.json

с опцией --verbose

6. Интеграция с Makefile
Добавьте в Makefile:
pint:
./vendor/bin/pint
pint-fix:
./vendor/bin/pint --config=.pint.json -v
Запуск:
make pint # Проверка
make pint-fix # Исправление
7. Настройка PHPStorm
Автоматическая интеграция (рекомендуемый способ)
- Убедитесь, что Pint установлен в проекте:
composer require laravel/pint --dev - Откройте настройки PhpStorm:
File → Settings → PHP → Quality Tools → Laravel Pint.
- Активируйте интеграцию:
- Включите опцию
Enable Laravel Pint. - Укажите путь к
pint.json(если используется кастомный конфиг).
- Включите опцию
- Настройте инспекции:
- Перейдите в
Settings → Editor → Inspections → PHP → Quality Tools. - Активируйте
Laravel Pint validationи выберите уровень строгости (например,WarningилиError).
- Перейдите в
Ручная настройка (если автоматическая не работает)
- Добавьте Pint как External Tool:
Settings → Tools → External Tools → +.- Поля:
- Name:
Laravel Pint - Program:
$ProjectFileDir$/vendor/bin/pint - Arguments:
$FilePath$(для текущего файла) или оставьте пустым для всего проекта. - Working directory:
$ProjectFileDir$.
- Name:
- Назначьте горячую клавишу:
Settings → Keymap → Найдите "Laravel Pint" → Назначьте комбинацию (например,Ctrl+Alt+P`).
8. Использование Pint в PhpStorm
- Автоматическая проверка:
После настройки инспекций PhpStorm будет подсвечивать ошибки стиля в реальном времени (как встроенные ошибки IDE). - Пакетное исправление:
- Через меню:
Code → Run Inspection by Name → Введите "Laravel Pint". - Через
Tools → External Tools → Laravel Pint(если настраивали вручную).
- Через меню:
- Форматирование при сохранении:
Settings → Tools → Actions on Save → Включите "Reformat code" и выберите "Laravel Pint" как форматтер.
Решение распространённых проблем
- PhpStorm форматирует код до Pint:
Отключите встроенный форматтер PHP:
`Settings → Editor → Code Style → PHP → Отключите «Enable formatter markers». - Ошибка «env: php: No such file or directory» (macOS):
Убедитесь, что PHP добавлен вPATH(например, черезbrew link php). - Конфликты с
.editorconfig:
Удалите или синхронизируйте правила в.editorconfigсpint.json.
8. Интеграция с GitLab CI
Добавьте в .gitlab-ci.yml:
stages:
- lint
pint:
stage: lint
script:
- composer install
- ./vendor/bin/pint --test --verbose
rules:
- if: $CI_COMMIT_BRANCH
Если нужно автоматически исправлять код:
pint-fix:
stage: lint
script:
- git config --global user.email "ci@example.com"
- git config --global user.name "GitLab CI"
- ./vendor/bin/pint
- git diff --quiet || (git add -A && git commit -m "Apply Pint fixes" && git push origin $CI_COMMIT_BRANCH)
rules:
- if: $CI_COMMIT_BRANCH
Итог
- Laravel Pint — простой и мощный инструмент для форматирования кода.
- Гибкая настройка через
.pint.json. - Интеграция с GitLab, PHPStorm, Makefile для автоматизации.
Теперь ваш код будет всегда в едином стиле! 🚀