Правила використання Rector для Laravel

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 17 жовтня, 2025
Плануєте вдосконалити свій код на Laravel? У нашій статті ми розглянемо, як використання інструменту Rector може значно спростити процес оновлення та рефакторингу ваших Laravel-додатків

Rector — це інструмент для PHP, який можна використовувати в будь-якому проекті, щоб миттєво оновити або автоматизувати рефакторинг. Rector для Laravel — це розширення, розроблене спільнотою Laravel, що містить специфічні правила для ваших застосунків на Laravel.

Щоб автоматично застосовувати правильні правила в залежності від версії Laravel у вашому застосуванні, використовуйте:

<?php declare(strict_types=1);
 
use Rector\Config\RectorConfig;
use RectorLaravel\Set\LaravelSetProvider;
 
return RectorConfig::configure()
    ->withSetProviders(LaravelSetProvider::class)
    ->withComposerBased(laravel: true, /** інші параметри */);

Однак, якщо ви хочете проводити оновлення поетапно та додавати лише конкретні набори правил, ви можете вручну додати набір цільової версії (наприклад, з Laravel v11 до v12) до конфігурації Rector:

<?php declare(strict_types=1);
 
use Rector\Config\RectorConfig;
use RectorLaravel\Set\LaravelLevelSetList;
 
return RectorConfig::configure()
    ->withSets([
        LaravelLevelSetList::UP_TO_LARAVEL_120,
    ]);

Також можливо покращити ваш код Laravel, використовуючи конкретні набори з LaravelSetList:

<?php declare(strict_types=1);
 
use Rector\Config\RectorConfig;
use RectorLaravel\Set\LaravelSetList;
 
return RectorConfig::configure()
    ->withSets([
        LaravelSetList::LARAVEL_IF_HELPERS,
        LaravelSetList::LARAVEL_TYPE_DECLARATIONS,
        ...
    ]);

Наприклад, LaravelSetList::LARAVEL_IF_HELPERS замінить abort(), report() та throw у умовах на виклики функцій abort_if(), report_if(), throw_if(). А LaravelSetList::LARAVEL_TYPE_DECLARATIONS додасть типи та загальні типи повернення для підвищення безпеки типів у коді Laravel. І це лише мала частина можливостей.

Крім того, існує багато упереджених та настроювальних правил, які можна застосовувати.

Переглянути список усіх правил (включаючи ті, що ще не вийшли) можна в документації.

Дізнайтеся більше про цей пакет та перегляньте вихідний код на GitHub.