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 для автоматизации.
Теперь ваш код будет всегда в едином стиле! 🚀