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 здесь!
ЧИТАТЬ ДАЛЕЕ: