CI4控制器与路由迁移摘要 | AI生成和翻译
推送完成!以下是完整的会话摘要:
🦞 路由修复 —— 完成事项
根本原因: CI4 不使用 __construct() —— 它使用 initController() 进行控制器初始化。
在所有 24 个控制器和 6 个模型中修复的内容:
| 修复项 | 详情 |
|---|---|
| ✅ 路由已定义 | 所有约 100 个 CI3 路由已转换为 CI4 的 $routes->get/post/match() 格式 |
✅ __construct() → initController() |
PHP 8.5 调用 initController() 而非 __construct()。所有子控制器已完成转换。 |
| ✅ 命名空间顺序 | 在 PHP 中,namespace 必须位于 use 语句之前 |
✅ use AppModelsXxx → App\Models\Xxx |
修复了缺少反斜杠的 use 语句 |
✅ public public function → public function |
删除了重复的修饰符 |
✅ $this->load->library/model → 已移除 |
CI3 的加载器在 CI4 中不存在 —— 改用直接 new ClassName() |
| ✅ HTTP 方法后缀已剥离 | isRegister_get() → isRegister()(显式路由,不使用 REST 后缀) |
✅ 缺失的 use 引用库/模型 |
控制器现在导入所有其使用的 App\Libraries\* 和 App\Models\* 类 |
✅ update() 签名冲突 |
LiveDao、AttendanceDao、WechatGroupDao —— 重命名为 updateRow()(与 PHP 8 的 Model::update() 不兼容) |
| ✅ 新增 448 个常量 | 所有 CI3 的 ERROR_*、KEY_*、CHANNEL_*、TRANS_TYPE_* 常量现在位于 app/Config/Constants.php 中 |
✅ 创建 QiniuLive.php |
缺失的流媒体库的 CI4 版本 |
结果: 11 条路由已测试 —— 全部返回 HTTP 200。🎉