SuperAPI AI 工具集

php-modernization

通用与其它

查看项目

更新于 10-15 21:10

技能介绍

用途:该技能面向 PHP 代码现代化改造场景,帮助在 PHP 8.1-8.5 范围内升级语法特性、遵循 PSR/PHP-FIG/PER-CS 规范,并引入 PHPStan、Rector、PHP-CS-Fixer、PHPat 等工具链。

主要能力与用法:按代理契约执行。发现阶段运行 uv run ${CLAUDE_SKILL_DIR}/scripts/introspect.py(轻量)或 verify_php_project.py --summary(完整,输出 agent_actions[]);逐项排查可用 ... --check PM-XX,问题超过 3 个时输出完整结果;应用改动先执行 uv run ${CLAUDE_SKILL_DIR}/scripts/modernize_loop.py --mode dry-run,审阅记录后再实际应用。参考文档按需加载,不预加载,涵盖 PHP 8.0-8.5 特性、PSR/PER-CS、PHPStan 配置、静态分析工具、PHP-CS-Fixer 弃用、DTO/VO、适配器注册表、多版本兼容、Symfony 模式、PSR-15 中间件、Doctrine 边界、API Platform、不可变性、契约不变量、变异测试、跨版本词法分析、迁移策略、公共 API 清单、PHPUnit 现代化、多代理调度风险及安全读取 PHP 配置等主题。

迁移检查清单:启用 declare(strict_types=1)、使用 @PER-CS 且无弃用别名、PHPStan ≥9(新项目 10,treatPhpDocTypesAsCertain: false)、PHPat 管理分层边界、方法与参数标注类型、用 DTO 替代数组、用 backed enum 替代常量、类型提示用 PSR 接口、采用 #[Override]、#[SensitiveParameter]、typed constants、仅在 DTO/VO/事件上用 readonly、使用属性钩子与 array_find/any/all、PHPUnit 12+ 中 stub 用 createStub、mock 用 createMock 加 expects。

硬性限制:不得对 Doctrine 实体或 mapped-superclasses 加 readonly;Rector 必须带 --dry-run 并直接调用 vendor/bin/rector;PHPStan 升级前须先重新生成并提交 baseline,只收缩不删除;不得对 mock 目标或扩展点盲目加 final;不得编辑 @generated 文件及 var/cache/、vendor/、node_modules/、.Build/ 目录;共享树中不得对范围外文件 git checkout --;vendor 变更后须清理 PHPStan 缓存;不得批量将 createMock 替换为 createStub。收费、价格与平台信息暂未提供。