Rector мгновенно обновляет и реорганизует PHP-код вашего приложения. Это может помочь вам в двух основных областях:
Rector теперь поддерживает обновления с PHP 5.3 до 8.4 и основные проекты с открытым исходным кодом, такие как Symfony, PHPUnit и Doctrine. Хотите ли вы постоянно и без усилий использовать новейшие версии PHP и Framework ?
Используйте Rector для мгновенного обновления за вас.
У вас есть необходимое качество кода, но вы изо всех сил пытаетесь сохранить его с новыми разработчиками в вашей команде? Хотите видеть умные проверки кода, даже когда все старшие разработчики спят?
Добавьте Rector в свой CI и позвольте ему постоянно рефакторить ваш код и поддерживать высокое качество кода.
Прочтите наш блог, чтобы узнать, как настроить автоматический рефакторинг.
composer require rector/rector --dev
Существует 2 основных способа использования Rector:
Чтобы использовать их, создайте rector.php
в корневом каталоге:
vendor/bin/rector
И измените его:
use Rector Config RectorConfig ;
use Rector TypeDeclaration Rector Property TypedPropertyFromStrictConstructorRector ;
return RectorConfig:: configure ()
// register single rule
-> withRules ([
TypedPropertyFromStrictConstructorRector::class
])
// here we can define, what prepared sets of rules will be applied
-> withPreparedSets (
deadCode: true ,
codeQuality: true
);
Затем пробный прогон Rector:
vendor/bin/rector process src --dry-run
Rector покажет вам разницу файлов, которые он изменит . Чтобы внести изменения, отбросьте --dry-run
:
vendor/bin/rector process src
Вам интересно, как устроен Rector внутри, как создавать свои правила и тестировать их и почему появился Rector? Прочтите статью Rector - The Power of Automated Refactoring, которая шаг за шагом проведет вас через настройку Rector и создание собственных правил.
Сообщество Rector является мощным благодаря активным сопровождающим, которые заботятся о наборах Rector для конкретных проектов.
Среди них проекты:
Rector — это инструмент, который мы разрабатываем и распространяем бесплатно, поэтому каждый может автоматизировать свой рефакторинг. Но не у каждого есть десятки часов, чтобы разобраться в сложности абстрактно-синтаксического дерева в свое время. Именно поэтому мы предоставляем коммерческую поддержку — чтобы сэкономить ваше время .
Хотели бы вы применить Rector к своей кодовой базе, но у вас нет времени возиться с проектом? Наймите нас, чтобы добраться туда быстрее.
См. руководство по участию или перейдите в репозиторий разработки Rector/rector-src.
Вы можете использовать опцию --debug
, которая будет печатать выходные данные вложенных исключений:
vendor/bin/rector process src/Controller --dry-run --debug
Или с помощью Xdebug:
--xdebug
при запуске Rector. vendor/bin/rector process src/Controller --dry-run --xdebug
Для облегчения простой отладки Rector предоставляет 2 помощника для красивой печати AST-узлов:
use PhpParser Node Scalar String_ ;
$ node = new String_ ( ' hello world! ' );
// prints node to string, as PHP code displays it
print_node ( $ node );
Rector использует nikic/php-парсер, построенный на технологии абстрактного синтаксического дерева (AST). AST не знает о пробелах и при записи в файл создает плохо отформатированный код как в PHP, так и в аннотациях докблока.
Ректор в параллельном режиме будет работать в большинстве случаев для большинства ОС. В Windows вы можете столкнуться с неразрешимыми проблемами, несмотря на соблюдение руководства по параллельному устранению неполадок. В таком случае проверьте, используете ли вы Powershell 7 (pwsh). Измените свой терминал на командную строку (cmd) или bash для Windows.
В вашем проекте должен быть стандартный инструмент кодирования и набор правил форматирования, чтобы он снова мог сделать выходной код Rector красивым и блестящим.
В этой настройке мы используем ECS.
Когда вы применяете изменения к файлам с содержимым PHP + HTML, вам может потребоваться вручную проверить измененный файл после применения изменений.