Pint — один из новейших членов собственных пакетов Laravel, который может помочь нам создать более читаемый и согласованный код.

Установить и настроить Пинт легко; он построен на основе PHP-CS-Fixer и имеет множество правил для устранения проблем со стилем кода.

Кроме того, Pint — это пакет с нулевой зависимостью, и для его использования не требуется Laravel 9.

Однако запускать Pint вручную каждый раз, когда мы хотим отправить наши изменения в удаленный репозиторий, может быть проблематично.

./vendor/bin/pint --dirty

Флаг --dirty запускает PHP-CS-Fixer только для измененных файлов. Если мы хотим проверить стили для всех файлов, мы можем просто убрать флаг --dirty.

В этой статье мы стремимся автоматизировать процесс проверки стиля кода с помощью Pint перед фиксацией любого измененного файла. Это гарантирует, что даже у командных разработчиков будет четко определенная структура кода, и им не нужно каждый раз запускать Laravel Pint перед отправкой кода в удаленный репозиторий.

Прежде чем мы начнем, важно отметить, что это очень простая настройка, и вы можете добавить в Laravel Pint столько параметров, сколько захотите.

Чтобы запускать ./vendor/bin/pint --dirty непосредственно перед каждым коммитом, нам нужно использовать хук pre-commit внутри папки .git.

Прежде всего, мы создадим папку scripts внутри нашего корневого каталога Laravel. В этой папке у нас будет файл setup.sh и файл pre-commit без расширения.

scripts/
  setup.sh
  pre-commit

Внутри нашего setup.sh у нас есть:

#! /usr/bin/env bash

cp scripts/pre-commit .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit

И напишите следующие строки в файле pre-commit:

#! /usr/bin/env bash

echo "Check php code styles..."
echo "Running PHP cs-fixer"
 ./vendor/bin/pint --dirty
 git add .
echo "Done!"

Во-вторых, мы должны перейти к файлу composer.json и на объекте scripts добавить эту строку: (Если ключ post-install-cmd не существует, вы должны создать часть post-install-cmd, а затем добавить ниже)

"post-install-cmd": [
            "bash scripts/setup.sh"
        ]

В-третьих, нам потребуется пакет Pint следующим образом:

composer require laravel/pint --dev

И чтобы быть уверенным, не забудьте пробежаться:

composer install

Команда composer install добавит хук pre-commit в нашу папку .git , и после этого мы готовы к работе!

С этого момента мы можем просто написать наш код, и непосредственно перед тем, как мы зафиксируем наши изменения, команда Pint запустится автоматически и исправит наши стили кода!

Пинта использует стили кода Laravel по умолчанию, но если вы хотите использовать psr-12, как я, вы можете создать файл pint.json в корневом каталоге вашего проекта Laravel и скопировать ниже json, чтобы иметь более самоуверенные стили кода PHP:

{
    "preset": "psr12",
    "rules": {
        "simplified_null_return": true,
        "blank_line_before_statement": {
            "statements": ["return", "try"]
        },
        "binary_operator_spaces": {
            "operators": {
                "=>": "align_single_space_minimal"
            }
        },
        "trim_array_spaces": false,
        "new_with_braces": {
            "anonymous_class": false
        }
    }
}

Это простая конфигурация для нашей команды Pint, которая упростит возврат null и определит одинаковый отступ для массивов. Вы можете проверить все опции PHP-CS-Fixer здесь!

ЧИТАТЬ ДАЛЕЕ: