拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Rector 完整指南:3 步完成 PHP 8.4 升级的自动化适配

Rector 完整指南3 步完成 PHP 8.4 升级的自动化适配【免费下载链接】rectorInstant Upgrades and Automated Refactoring of any PHP 5.3 code项目地址: https://gitcode.com/GitHub_Trending/re/rector你正在把项目升级到 PHP 8.4改完一轮又弹出警告round()还在用旧常量重写方法没加#[\Override]。几百个文件难道要一个个翻这篇 Rector 使用教程用 3 步跑通 PHP 8.4 自动升级读完就能照做。看懂 Rector 定位它凭什么批量改代码一句话定位Rector 是 PHP 的自动化重构工具专治版本升级和代码规范这类体力活。它能批量改而不改错靠三点懂结构不做字符串替换先把代码解析成 AST抽象语法树。规则能精准定位是哪个函数调用、哪个方法在重写父类变量改名也骗不了它。dry-run 预览模式改完先算不先落盘。你确认 diff 没问题它才真正写文件。规则可持续扩展每个 PHP 版本的新特性都配独立规则集比如 config/set/php84.php 就登记了 8.4 的全部规则。新版本来了你只管开启不用自己写。5 分钟跑通第一次自动重构整个过程就三步5 分钟能跑完。第一步安装并生成配置composer require rector/rector --dev vendor/bin/rector initrector init会自动在根目录生成rector.php配置文件。第二步配置只留关键项use Rector\Config\RectorConfig; return RectorConfig::configure() -withPaths([__DIR__ . /src]) -withPreparedSets( php84: true );withPaths指定扫描哪些目录php84: true开启 8.4 规则集够了。第三步首次 dry-run 预览vendor/bin/rector src --dry-run它会列出哪些文件会被改、怎么改但一个字符都不会动。眼见为实看代码被自动改写给重写方法自动补上 #[\Override]class OrderService extends BaseOrderService { - public function cancel(): void #[\Override] public function cancel(): void { // ... } }规则会遍历类继承链找出每个真正重写父类的方法逐个打上属性。不用你开文件逐个核对。实现见 rules/Php83/Rector/ClassMethod/AddOverrideAttributeToOverriddenMethodsRector.php。顺带一提#[\Override]是 8.3 引入的从 8.4 起无效重写直接报错所以升级前必须标记。废弃常量换成 RoundingMode 枚举-round(1.5, 0, PHP_ROUND_HALF_UP); round(1.5, 0, RoundingMode::HalfAwayFromZero);PHP 8.4 新增了RoundingMode枚举PHP_ROUND_*四个常量正式废弃。Rector 按映射关系逐个替换舍入语义一个字都不会变。规则源码在 rules/Php84/Rector/FuncCall/RoundingModeEnumRector.php。上生产前过一遍安全清单 ⚠️工具再稳提交前也别跳过这几步先预览跑一遍vendor/bin/rector src --dry-rundiff 输出就是你的确认依据。改后跑测试单元测试全量过一遍确认行为没变。查残留警告用 PHP 8.4 环境运行项目确认废弃警告清零。看运行总结结尾输出会汇总改动文件数核对一下是否符合预期。排除不该动的skip 同时支持排除整目录、排除单条规则示例见下-withSkip([ __DIR__ . /src/Legacy, RoundingModeEnumRector::class [ __DIR__ . /src/OldMath.php, ], ])第一项排除整个遗留目录第二项让某个文件躲开某条规则。把 Rector 变成团队基建自定义规则团队私有规范可以继承 Rector 基类写一条规则用withRules()注册。仓库的 templates/ 目录里就有自定义规则的脚手架代码照着改最快。接入 CI流水线加一行vendor/bin/rector src --dry-run。只要它想改东西就让构建失败谁也别想塞进不合规的代码 ✅规则从此成为团队的质量门禁规范不再靠口头约定。从手动改到自动适配路径其实很短装、配、预览。想深入看 rules/Php84/ 浏览 8.4 全部规则源码用法细节查 README.md升级说明看 UPGRADING.md。跑完之后体力活归 Rector你的时间还给真正的业务代码。【免费下载链接】rectorInstant Upgrades and Automated Refactoring of any PHP 5.3 code项目地址: https://gitcode.com/GitHub_Trending/re/rector创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门