SuperAPI AI 工具集

basercms-plugin-4-to-5-upgrade

前端与建站

查看项目

更新于 10-15 18:51

技能介绍

用途:整理 baserCMS 4 插件内部代码迁移到 baserCMS 5 时所需的手工改写模式。适用于已用 BcAddonMigrator 把插件雏形转为 5 系之后,按症状排查并逐项替换 4 系写法。站点整体迁移(安装、BcDbMigrator、主题转换、插件 ZIP 化与部署)属于另一技能 basercms4-to-5-upgrade;本技能由其调用,聚焦 Controller / Table / Entity / View / Helper / 表单 / Vue·JS 的迁移细节。5 系正确写法的正本为 basercms5-plugin-development(主题为 basercms5-theme-development)。若要把 4 系自定义字段插件改为 5 系标准 bc-custom-content,应使用 basercms5-custom-content-development。

主要能力:按“4 系惯用法检测(症状、grep 模式)→ 转换要点 → 正本技能对应章节”组织。涵盖文件/文件夹操作改用 BcFile/BcFolder 或 PHP 标准库;请求处理从 $this->request->data 等改为 getData()/getQuery()/getParam(),消息改用 BcMessage,布局用 viewBuilder()->disableAutoLayout(),URL 改数组形式,模型调用改 fetchTable('Plugin.ModelNames')(必须复数);日期时间推荐 Cake\I18n\DateTime,并重点处理 datePicker 日期保存为 NULL 的问题;Model 拆分为 Table 与 Entity;视图/Helper 的 loaded、element 指定与属性直读问题;事件监听器改用 EventInterface、$event->getData()/getSubject(),注意跨插件事件名变更会导致无发火;Table/ORM 层需手工迁移关联声明、$actsAs、$validate、回调签名、查询构建器、KVS、getControlSource、集计与 afterSave 等。

使用方式与流程:建议先建立文件状态台账,再做横断静态审计,随后批量进行“仅语法 5 系化”,最后用测试与浏览器做语义验证。同因问题用 grep 全量排查后统一替换,并用 php -l 验证。deferred 项需同时在代码 TODO 与台账中记录。

限制:部分 5 系不存在的 API(如 Model.afterFind、bindModel、callbacks 选项)不可强行实现,应记录或替代;资料未提供具体版本兼容范围、价格与安装命令之外的平台细节。