rector:PHP代码即时升级与自动化重构工具,支持多版本与主流框架

Instant Upgrades and Automated Refactoring of any PHP 5.3+ code

分支1Tags530
文件最后提交记录最后更新时间
6 个月前
1 天前
1 天前
5 个月前
1 小时前
1 小时前
1 年前
5 个月前
23 小时前
2 年前
8 年前
5 个月前
8 年前
2 个月前
6 个月前
8 个月前
21 天前
1 个月前

Rector - 即时升级与自动化重构

下载量


Rector 可即时升级和重构应用程序的 PHP 代码。它能在两大方面为您提供帮助:

1. 即时升级

Rector 目前支持从 PHP 5.3 升级至 8.5,以及对 SymfonyPHPUnitDoctrine 等主要开源项目的升级。您是否希望毫不费力地始终使用最新的 PHP 和框架版本

让 Rector 为您处理即时升级

2. 自动化重构

您是否已达到所需的代码质量,但团队中有新开发人员加入时难以维持?您是否希望即使所有资深开发人员都在休息,也能进行智能代码审查?

将 Rector 添加到您的 CI 中,让它持续重构您的代码,保持高代码质量。

阅读我们的 博客文章,了解如何设置自动化重构。

安装

composer require rector/rector --dev

运行 Rector

使用 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 src --dry-run

Rector 会显示它将要修改的文件差异。若要实际执行修改,请去掉 --dry-run 参数:

vendor/bin/rector src

文档


通过书籍快速学习

您是否好奇 Rector 的内部工作原理、如何创建和测试自己的规则,以及 Rector 诞生的原因? 阅读《Rector - The Power of Automated Refactoring》一书,它将逐步带您了解 Rector 的设置过程以及如何创建自己的规则。


社区赋能 ❤️

Rector 社区之所以强大,得益于活跃的维护者们,他们负责特定项目的 Rector 规则集。

其中包括以下项目:


聘请我们完成工作 💪

Rector 是我们开发并免费分享的工具,以便任何人都能自动化其重构工作。但并非每个人都有大量时间自行去理解抽象语法树的复杂性。因此,我们提供商业支持——为您节省时间。

您是否希望在自己的代码库上应用 Rector,但没有时间处理项目中可能遇到的问题?聘请我们,让您更快达成目标。


如何贡献

请参阅贡献指南或访问开发仓库rector/rector-src


调试

您可以使用--debug选项,该选项将打印嵌套异常输出:

vendor/bin/rector src/Controller --dry-run --debug

或使用 Xdebug:

  1. 确保已安装并配置 Xdebug
  2. 运行 Rector 时添加 --xdebug 选项
vendor/bin/rector 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 代码和文档块注释格式都可能不够规范。

  • Rector 的并行模式在大多数操作系统上通常都能正常工作。但在 Windows 系统中,即使遵循 并行模式故障排除 指南,也可能遇到无法解决的问题。这种情况下,请检查是否使用的是 Powershell 7(pwsh)。建议将终端切换为命令提示符(cmd)或 Windows 版 bash。

如何应用编码标准?

您的项目需要配备编码标准工具和一套格式化规则,这样才能让 Rector 输出的代码重新变得美观规范。

我们正在使用 ECS,并采用 此配置

可能在混合 PHP+HTML 内容的文件上产生意外输出

当您对包含 PHP + HTML 内容的文件应用更改后,可能需要在更改完成后手动验证该文件。

项目介绍

即刻升级与自动化重构任意PHP 5.3+代码【此简介由AI生成】

定制我的领域
8610.36 K741访问 GitHub