Pint 1.30.0 тепер підтримує форматування Blade-шаблонів, включаючи синтаксис Blade, атрибути Alpine, сортування класів Tailwind тощо. За допомогою нового прапорця --blade активується правило Pint/laravel_blade, яке обробляє файли .blade.php через Prettier та плагін prettier-plugin-blade.
# Що нового
# Форматування Blade через --blade
Запустіть Pint у проєкті з відповідним прапорцем:
./vendor/bin/pint --blade
Цей прапорець є скороченням для правила Pint/laravel_blade, тому його можна ввімкнути назавжди у файлі pint.json:
{
"rules": {
"Pint/laravel_blade": true
}
}
Якщо правило вимкнено, Pint повністю ігнорує файли *.blade.php (як і в попередніх версіях). Якщо ввімкнено — форматуються лише файли з розширенням .blade.php.
Форматування виконується через Node, а не PHP. Для роботи правила потрібні три npm-пакети, наявність яких Pint перевіряє автоматично:
prettier(^3.8.4)prettier-plugin-blade(^3.2.2)prettier-plugin-tailwindcss(^0.8.0)
Якщо Node відсутній, Pint зупинить роботу з поясненням. Якщо пакетів бракує, інструмент запропонує їх встановити. Якщо встановлені версії не відповідають вимогам, Pint виведе команду для виправлення ситуації.
Три категорії Blade-файлів ігноруються навіть за ввімкненого правила, щоб уникнути помилок у логіці чи відображенні:
- Файли завдань Envoy (
Envoy.blade.php,envoy.blade.php) - Файли Boost guideline у
resources/boost/guidelines/ - Шаблони листів у
resources/views/emails/таresources/views/mail/
Функція підтримує атрибути Alpine, прив’язки Livewire wire:, компоненти Flux, сортування класів Tailwind, блоки @verbatim, heredocs, inline SVG та класи однофайлових компонентів.
# Перейменовані файли у --diff
Раніше опція --diff використовувала фільтр git diff --diff-filter=AM, який ігнорував перейменовані файли. Тепер використовується фільтр AMR, що дозволяє враховувати додані, змінені та перейменовані файли у комітах, staged та unstaged змінах.
PR: #448 від @MassimilianoLattanzio
# Виведення помилок у stderr при --quiet
Раніше прапорець --quiet працював як --silent: інформація про порушення стилю просто ігнорувалася. Тепер помилки виводяться у stderr: stdout залишається чистим, код завершення відображає результат, але ви все одно отримуєте список проблемних файлів.
# Ключ "in" у pint.json
Тепер ви можете обмежувати директорії для сканування безпосередньо у конфігураційному файлі. Це спрощує міграцію з налаштувань .php-cs-fixer.php.
PR: #454 від @cosmastech
# Нотатки щодо оновлення
Оновлення не містить критичних змін для існуючих конфігурацій. Форматування Blade активується за бажанням: без ввімкненого правила Pint працює з .blade.php так само, як і раніше.
Оновіть Pint через Composer:
composer update laravel/pint
# Посилання
Вихідний код доступний на GitHub: laravel/pint.
