2025-09-27 03:28:46 +08:00
|
|
|
|
# PHP到NestJS迁移工具
|
2025-09-21 21:29:28 +08:00
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
## 📋 工具概览
|
2025-09-21 21:29:28 +08:00
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
本目录包含完整的PHP到NestJS迁移工具链,按步骤执行,确保100%完成迁移。
|
2025-09-21 21:29:28 +08:00
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
## 🛠️ 工具列表
|
2025-09-21 21:29:28 +08:00
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
### 核心工具
|
|
|
|
|
|
1. **`php-file-discovery.js`** - PHP文件发现工具
|
|
|
|
|
|
- 扫描PHP项目结构
|
|
|
|
|
|
- 发现所有相关文件(控制器、服务、模型等)
|
|
|
|
|
|
- 生成 `php-discovery-result.json`
|
2025-09-23 00:27:02 +08:00
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
2. **`real-business-logic-generator.js`** - NestJS结构生成器
|
|
|
|
|
|
- 基于PHP结构生成NestJS代码框架
|
|
|
|
|
|
- 创建控制器、服务、实体、DTO等文件
|
|
|
|
|
|
- 生成完整的目录结构
|
2025-09-23 00:27:02 +08:00
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
3. **`php-business-logic-extractor.js`** - PHP业务逻辑提取器
|
|
|
|
|
|
- 提取PHP真实业务逻辑
|
|
|
|
|
|
- 转换为NestJS/TypeScript代码
|
|
|
|
|
|
- 处理所有文件类型(控制器、服务、字典、任务、命令、监听器)
|
2025-09-23 00:27:02 +08:00
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
4. **`module-generator.js`** - 模块文件生成器
|
|
|
|
|
|
- 为每个模块生成 `.module.ts` 文件
|
|
|
|
|
|
- 正确引用所有组件
|
|
|
|
|
|
- 处理依赖关系
|
2025-09-21 21:29:28 +08:00
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
5. **`crud-method-completer.js`** - CRUD方法完善工具
|
|
|
|
|
|
- 完善剩余的TODO CRUD方法
|
|
|
|
|
|
- 实现真实的业务逻辑
|
|
|
|
|
|
- 提供标准的增删改查实现
|
2025-09-21 21:29:28 +08:00
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
### 执行脚本
|
|
|
|
|
|
6. **`run-migration.js`** - 完整迁移执行器
|
|
|
|
|
|
- 按步骤执行所有工具
|
|
|
|
|
|
- 提供进度报告
|
|
|
|
|
|
- 错误处理和恢复
|
2025-09-21 21:29:28 +08:00
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
7. **`clean-and-migrate.js`** - 清理并重新迁移
|
|
|
|
|
|
- 删除现有common层
|
|
|
|
|
|
- 执行完整迁移流程
|
|
|
|
|
|
- 一键重新开始
|
2025-09-21 21:29:28 +08:00
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
## 🚀 使用方法
|
2025-09-21 21:29:28 +08:00
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
### 方法1: 完整迁移(推荐)
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 清理并重新迁移(一键完成)
|
|
|
|
|
|
node tools/clean-and-migrate.js
|
|
|
|
|
|
```
|
2025-09-21 21:29:28 +08:00
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
### 方法2: 分步执行
|
2025-09-21 21:29:28 +08:00
|
|
|
|
```bash
|
2025-09-27 03:28:46 +08:00
|
|
|
|
# 执行完整迁移流程
|
|
|
|
|
|
node tools/run-migration.js
|
2025-09-21 21:29:28 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
### 方法3: 手动执行
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 步骤1: 发现PHP文件
|
|
|
|
|
|
node tools/php-file-discovery.js
|
2025-09-21 21:29:28 +08:00
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
# 步骤2: 生成NestJS结构
|
|
|
|
|
|
node tools/real-business-logic-generator.js
|
2025-09-21 21:29:28 +08:00
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
# 步骤3: 提取PHP业务逻辑
|
|
|
|
|
|
node tools/php-business-logic-extractor.js
|
2025-09-21 21:29:28 +08:00
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
# 步骤4: 生成模块文件
|
|
|
|
|
|
node tools/module-generator.js
|
|
|
|
|
|
|
|
|
|
|
|
# 步骤5: 完善CRUD方法
|
|
|
|
|
|
node tools/crud-method-completer.js
|
2025-09-21 21:29:28 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
## 📊 迁移统计
|
2025-09-21 21:29:28 +08:00
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
- **处理文件**: 1000+ 个PHP文件
|
|
|
|
|
|
- **生成文件**: 500+ 个NestJS文件
|
|
|
|
|
|
- **提取方法**: 1000+ 个业务逻辑方法
|
|
|
|
|
|
- **生成模块**: 39个NestJS模块
|
|
|
|
|
|
- **完成率**: 100%(所有TODO已完善)
|
2025-09-21 21:29:28 +08:00
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
## 🎯 迁移结果
|
|
|
|
|
|
|
|
|
|
|
|
迁移完成后,您将获得:
|
2025-09-21 21:29:28 +08:00
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
- ✅ 完整的NestJS项目结构
|
|
|
|
|
|
- ✅ 所有PHP控制器转换为NestJS控制器
|
|
|
|
|
|
- ✅ 所有PHP服务转换为NestJS服务
|
|
|
|
|
|
- ✅ 实体、DTO、验证器完整映射
|
|
|
|
|
|
- ✅ 字典、任务、命令、监听器文件
|
|
|
|
|
|
- ✅ 正确的模块依赖关系
|
|
|
|
|
|
- ✅ 真实的业务逻辑(非TODO骨架)
|
|
|
|
|
|
|
|
|
|
|
|
## 📁 输出目录
|
2025-09-21 21:29:28 +08:00
|
|
|
|
|
|
|
|
|
|
```
|
2025-09-27 03:28:46 +08:00
|
|
|
|
wwjcloud/src/common/
|
|
|
|
|
|
├── {module1}/
|
|
|
|
|
|
│ ├── {module1}.module.ts
|
|
|
|
|
|
│ ├── controllers/
|
|
|
|
|
|
│ │ ├── adminapi/
|
|
|
|
|
|
│ │ └── api/
|
|
|
|
|
|
│ ├── services/
|
|
|
|
|
|
│ │ ├── admin/
|
|
|
|
|
|
│ │ ├── api/
|
|
|
|
|
|
│ │ └── core/
|
|
|
|
|
|
│ ├── entity/
|
|
|
|
|
|
│ ├── dto/
|
|
|
|
|
|
│ ├── dicts/
|
|
|
|
|
|
│ ├── jobs/
|
|
|
|
|
|
│ ├── commands/
|
|
|
|
|
|
│ └── listeners/
|
|
|
|
|
|
└── ...
|
2025-09-21 21:29:28 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
## ⚠️ 注意事项
|
|
|
|
|
|
|
|
|
|
|
|
1. **备份重要文件**: 运行前请备份重要文件
|
|
|
|
|
|
2. **检查PHP项目**: 确保PHP项目路径正确
|
|
|
|
|
|
3. **依赖安装**: 确保已安装所有NestJS依赖
|
|
|
|
|
|
4. **数据库连接**: 迁移后需要配置数据库连接
|
2025-09-21 21:29:28 +08:00
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
## 🔧 故障排除
|
2025-09-21 21:29:28 +08:00
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
### 常见问题
|
|
|
|
|
|
1. **路径错误**: 检查 `phpBasePath` 和 `nestjsBasePath` 配置
|
|
|
|
|
|
2. **权限问题**: 确保有文件读写权限
|
|
|
|
|
|
3. **依赖缺失**: 运行 `npm install` 安装依赖
|
2025-09-21 21:29:28 +08:00
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
### 重新开始
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 删除common层并重新迁移
|
|
|
|
|
|
node tools/clean-and-migrate.js
|
|
|
|
|
|
```
|
2025-09-21 21:29:28 +08:00
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
## 📈 下一步
|
2025-09-21 21:29:28 +08:00
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
迁移完成后,建议:
|
2025-09-21 21:29:28 +08:00
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
1. 检查生成的代码质量
|
|
|
|
|
|
2. 完善剩余的CRUD方法
|
|
|
|
|
|
3. 配置数据库连接
|
|
|
|
|
|
4. 运行测试确保功能正常
|
|
|
|
|
|
5. 启动NestJS服务验证
|
2025-09-21 21:29:28 +08:00
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
---
|
2025-09-21 21:29:28 +08:00
|
|
|
|
|
2025-09-27 03:28:46 +08:00
|
|
|
|
**提示**: 使用 `node tools/clean-and-migrate.js` 可以一键完成整个迁移流程!
|