Rector 立即升级并重构您应用程序的 PHP 代码。它可以在 2 个主要领域为您提供帮助:
Rector 现在支持从 PHP 5.3 到 8.4 的升级以及 Symfony、PHPUnit 和 Doctrine 等主要开源项目。您想毫不费力地持续使用最新的 PHP 和框架吗?
使用 Rector 为您处理即时升级。
您是否拥有所需的代码质量,但很难让团队中的新开发人员保持这种质量?即使每个高级开发人员都在睡觉,您是否希望看到智能代码审查?
将 Rector 添加到您的 CI 中,让它不断重构您的代码并保持较高的代码质量。
阅读我们的博文,了解如何设置自动重构。
composer require rector/rector --dev
Rector的使用主要有2种方式:
要使用它们,请在根目录中创建一个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 - 自动重构的力量,它将引导您逐步完成 Rector 设置以及如何创建自己的规则。
Rector 社区的强大得益于活跃的维护者,他们负责特定项目的 Rector 集。
其中项目包括:
Rector 是我们免费开发和共享的工具,因此任何人都可以自动化重构。但并不是每个人都有自己的时间花几十个小时来理解抽象语法树的复杂性。这就是我们提供商业支持的原因 - 以节省您的时间。
您想在您的代码库中应用 Rector,但没有时间与您的项目作斗争吗?雇用我们可以更快地到达那里。
请参阅贡献指南或转到开发存储库ector/rector-src。
您可以使用--debug
选项,它将打印嵌套异常输出:
vendor/bin/rector process src/Controller --dry-run --debug
或者使用 Xdebug:
--xdebug
选项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-parser,该解析器基于称为抽象语法树(AST) 的技术构建。 AST 不知道空格,当写入文件时,它会在 PHP 和 docblock 注释中生成格式错误的代码。
并行模式下的 Rector 在大多数操作系统中都能正常工作。在 Windows 上,尽管遵循并行故障排除指南,您可能会遇到无法解决的问题。在这种情况下,请检查您是否使用 Powershell 7 (pwsh)。将终端更改为命令提示符 (cmd) 或 Windows 的 bash。
你的项目需要有一个编码标准工具和一套格式化规则,这样它才能使 Rector 的输出代码再次变得漂亮和闪亮。
我们使用 ECS 进行此设置。
当您将更改应用于包含 PHP + HTML 内容的文件时,您可能需要在应用更改后手动验证更改的文件。