Поддержите проект сделав пожертвование.
Ищете работу? Мы поможем!
Ищете работу? Мы поможем!

Laravel Pint

Вы просматриваете документ для прошлой версии.
Рассмотрите возможность обновления вашего проекта до актуальной версии 11.x. Почему это важно?

Введение

Laravel Pint – это оптимизированный инструмент для форматирования кода на PHP для минималистов. Pint построен на основе PHP-CS-Fixer и обеспечивает простой способ поддержания чистого и последовательного стиля кода.

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

Установка

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

composer require laravel/pint --dev

Запуск Pint

Вы можете указать Pint исправить проблемы со стилем кода, вызвав двоичный файл pint, который доступен в каталоге vendor/bin вашего проекта:

./vendor/bin/pint

Вы также можете запустить Pint для определенных файлов или каталогов:

./vendor/bin/pint app/Models

./vendor/bin/pint app/Models/User.php

Pint отобразит подробный список всех файлов, которые он обновляет. Вы можете просмотреть еще больше информации об изменениях сделанных Pint, указав опцию -v при вызове Pint:

./vendor/bin/pint -v

Если вы хотите, чтобы Pint просто проверил ваш код на наличие ошибок стиля, не внося изменения в файлы, вы можете использовать опцию --test:

./vendor/bin/pint --test

Если вы хотите, чтобы Pint модифицировал только те файлы, которые имеют незафиксированные изменения согласно Git, вы можете использовать опцию --dirty:

./vendor/bin/pint --dirty

Настройка Pint

Как уже упоминалось, для Pint не требуется какая-либо конфигурация. Однако, если вы хотите настроить предустановки, правила или проверяемые папки, вы можете сделать это, создав файл pint.json в корневом каталоге вашего проекта:

{
  "preset": "laravel"
}

Кроме того, если вы хотите использовать файл pint.json из определенного каталога, вы можете указать опцию --config при вызове Pint:

pint --config vendor/my-company/coding-style/pint.json

Предустановки (Presets)

Предустановки определяют набор правил, которые могут использоваться для исправления проблем со стилем кода в вашем коде. По умолчанию Pint использует предустановку laravel, которая исправляет проблемы, следуя оптимизированному стилю кодирования Laravel. Однако вы можете указать другую предустановку, предоставив опцию --preset Pint:

pint --preset psr12

Если хотите, вы также можете установить предустановку в файле pint.json вашего проекта:

{
  "preset": "psr12"
}

В настоящее время поддерживаемые предустановки Pint следующие: laravel, per, psr12 и symfony.

Правила

Правила – это стандарты стиля, которые Pint будет использовать для исправления проблем со стилем кода в вашем коде. Как уже упоминалось выше, предустановки – это предопределенные группы правил, которые подходят для большинства проектов на PHP, поэтому обычно вам не нужно беспокоиться о отдельных правилах, которые они содержат.

Однако, если вы хотите, вы можете включить или отключить определенные правила в вашем файле pint.json:

{
  "preset": "laravel",
  "rules": {
    "simplified_null_return": true,
    "braces": false,
    "new_with_braces": {
      "anonymous_class": false,
      "named_class": false
    }
  }
}

Исключение файлов / каталогов

По умолчанию Pint будет проверять все файлы .php в вашем проекте, за исключением тех, которые находятся в каталоге vendor. Если вы хотите исключить больше каталогов, вы можете сделать это, используя опцию конфигурации exclude:

{
  "exclude": [
    "my-specific/folder"
  ]
}

Если вы хотите исключить все файлы, подходящие под определенный шаблон имени, вы можете сделать это, используя опцию конфигурации notName:

{
  "notName": [
    "*-my-file.php"
  ]
}

Если вы хотите исключить файл, указав точный путь к нему, вы можете сделать это, используя опцию конфигурации notPath:

{
  "notPath": [
    "path/to/excluded-file.php"
  ]
}