任何PHP代码的即时升级和自动化重构

维护者

详细信息

github.com/hungthai1401/rector

来源

资助包维护!
tomasvotruba

0.15.2.1 2023-01-04 09:53 UTC

This package is auto-updated.

Last update: 2024-09-04 13:22:08 UTC


README

Downloads


Rector可即时升级并重构您应用程序的PHP代码。它可以帮助您在以下两大领域

1. 即时升级

Rector现在支持从PHP 5.3升级到8.1,以及像SymfonyPHPUnitDoctrine这样的主要开源项目。您是否希望 轻松地始终保持在最新的PHP和框架

使用Rector为您处理 即时升级

2. 自动重构

您是否需要代码质量,但难以在您的团队中新开发人员中保持它?您是否希望在资深开发者都休息的时候也能看到智能代码审查?

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

安装

composer require rector/rector --dev

运行Rector

使用Rector主要有两种方法

  • a 单个规则,以控制变更
  • 或一组称为 集合 的规则

要使用它们,请在您的根目录中创建一个 rector.php

vendor/bin/rector init

并修改它

use Rector\Config\RectorConfig;
use Rector\Set\ValueObject\SetList;
use Rector\TypeDeclaration\Rector\Property\TypedPropertyFromStrictConstructorRector;

return static function (RectorConfig $rectorConfig): void {
    // register single rule
    $rectorConfig->rule(TypedPropertyFromStrictConstructorRector::class);

    // here we can define, what sets of rules will be applied
    // tip: use "SetList" class to autocomplete sets with your IDE
    $rectorConfig->sets([
        SetList::CODE_QUALITY
    ]);
};

然后进行dry run Rector

vendor/bin/rector process src --dry-run

Rector将显示它 将更改 的文件diff。要 应用 这些更改,请删除 --dry-run

vendor/bin/rector process src

文档


通过书籍快速学习

您好奇Rector是如何内部工作的,如何创建自己的规则并测试它们,以及为什么Rector被创造出来吗?阅读Rector - 自动重构的力量,它将一步步引导您完成Rector设置以及如何创建自己的规则。


由社区支持 ❤️

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

其中项目包括


雇用我们完成任务 💪

Rector是我们开发和分享的免费工具,因此任何人都可以自动化他们的重构。但并非每个人都愿意花数十小时来理解抽象语法树。 这就是我们提供商业支持的原因 - 为了节省您的时间

您想在您的代码库中应用Rector,但没有时间来与您的项目奋斗吗? 雇用我们 以更快地完成任务。


如何贡献

查看贡献指南 或访问开发仓库rector/rector-src


调试

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

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

或者使用Xdebug

  1. 确保Xdebug已安装和配置
  2. 运行Rector时添加--xdebug选项
vendor/bin/rector process src/Controller --dry-run --xdebug

已知缺点

如何应用编码标准?

Rector使用nikic/php-parser,它基于称为抽象语法树(AST)的技术构建。AST不了解空格,当写入文件时,会产生格式糟糕的PHP代码和docblock注释。因此,您的项目需要有一个编码标准工具和一系列格式化规则,以便Rector的输出代码看起来更整洁。

我们使用ECS以及此配置