英文原标题:Build a repeatable PHP-to-Java migration engine with Kiro

本文为英文原文的机器翻译摘要,原文见:AWS Machine Learning Blog ↗

  • 文章介绍如何用 Kiro 将 PHP 到 Java 的迁移从一次性尝试变成可度量、可重复的流程,核心是一个可复用引擎:共享方法论、机械式发现扫描器和八阶段工作流。
  • 引擎把原始 PHP 应用当作规格说明,在 parity harness 验证通过之前不宣布 Java 移植正确;所有知识以 skill 文件形式存在,因此同一套方法既可在 Kiro 中交互式运行,也可通过 AWS Transform 以代理方式大规模运行。
  • 工作区采用“一个共享大脑、多个项目”的结构:全局 .kiro/ 层包含 php-model-discovery 扫描器和 php-to-java-migration 八阶段手册,各项目文件夹存放自己的 PHP 源码、Java 输出和规格子目录。
  • 最重要的规则是“先发现再翻译”:在扫描器运行之前,不得阅读、猜测或手工翻译模型/实体文件。扫描器 discover-models.php 是无依赖的单文件 PHP 命令行工具,只读取源码 token,不执行目标代码。
  • 扫描器一次运行三种策略:Eloquent 模型发现、Doctrine 属性检测和 ORM XML 映射,输出单个 JSON manifest,包含 models[] 和 flags[];歧义不猜测,而是进入人工审查队列。

关键数据

  • 需要 PHP 8.0 或更新版本运行发现扫描器,Java 21 和 Maven 用于生成的 Spring Boot 项目。
  • 扫描器输出单个 JSON manifest,包含 models[] 数组(字段、类型转换、关系、可见性规则)和 flags[] 数组。
  • 工作流共八个阶段,Phase 0 为准备阶段,Phase 1-3 集中人工专业判断,Phase 4-8 主要是由 parity harness 裁判的自驱动循环。

引语

  • fix the loop, not the code

为什么值得看:文章提供了一套以原始 PHP 应用为规格、以 parity harness 为裁判的可重复迁移方法,并说明同一套 skill 文件可在 Kiro 交互模式和 AWS Transform 大规模代理模式间复用,有助于降低 PHP 到 Java 迁移中“编译通过但行为不同”的风险。

站内导航