Загрузка...

Laravel Pint для автоматического форматирования кода

laravel pint

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

Результат:
laravel pint


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

Автоматическая интеграция (рекомендуемый способ)

  1. Убедитесь, что Pint установлен в проекте:
    composer require laravel/pint --dev
    
  2. Откройте настройки PhpStorm:
    • File → Settings → PHP → Quality Tools → Laravel Pint.
  3. Активируйте интеграцию:
    • Включите опцию Enable Laravel Pint.
    • Укажите путь к pint.json (если используется кастомный конфиг).
  4. Настройте инспекции:
    • Перейдите в Settings → Editor → Inspections → PHP → Quality Tools.
    • Активируйте Laravel Pint validation и выберите уровень строгости (например, Warning или Error).

Ручная настройка (если автоматическая не работает)

  1. Добавьте Pint как External Tool:
    • Settings → Tools → External Tools → +.
    • Поля:
      • Name: Laravel Pint
      • Program: $ProjectFileDir$/vendor/bin/pint
      • Arguments: $FilePath$ (для текущего файла) или оставьте пустым для всего проекта.
      • Working directory: $ProjectFileDir$.
  2. Назначьте горячую клавишу:
    • 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 для автоматизации.

Теперь ваш код будет всегда в едином стиле! 🚀

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *