用途:指导 baserCMS 插件由 5.2 系迁移至 5.3 系(5.3 系基于 PHP 8.5 / CakePHP 5.2.x,资料编写时仍在开发中),聚焦 baserCMS 自身特有的破坏性变更、非推荐用法和插件测试基座适配;PHP 本体问题归 php-migration 技能,CakePHP 本体问题归 cakephp-migration 技能,测试执行与统计归 basercms-unittest 技能。
主要能力与用法:
- 依赖更新:把插件 composer.json 中 baserproject/baser-core 升到 "5.3.x",再用 composer update baserproject/baser-core --with-dependencies 引入 5.3 系与 CakePHP 5.2.x;不整包 composer update。
- 测试基座常见问题(standalone 插件自带 vendor 与 tests/TestApp 时最易卡住):
- CakePHP 双重加载致 validateUnique() 参数缺失,改为用插件自带 vendor/bin/phpunit 执行,脚本如 "test": ["Composer\Config::disableProcessTimeout", "vendor/bin/phpunit --colors=always"]。
- tests/TestApp/config/plugins.php 中 null 值改为 [](PluginCollection::create 需 array)。
- 插件加载改用 Configure::write('BcApp.testAppPluginsToLoad', [...]),plugins.php 仅留 BaserCore,避免 "Plugin named 'X' is already loaded"。
- 同梱子插件(如 BcCcFile)类找不到时,把父插件(BcCustomContent)加入 testAppPluginsToLoad 触发 bootstrap。
- 集成测试 500 被 MissingTemplateException: Error/error500.php 掩盖,可临时放置 templates/Error/error500.php 输出真实异常后删除。
- baserCMS 非推荐项:BcFile 需在构造函数传路径,delete() 不再传路径(6.0.0 起强制)。
- TreeBehavior 与 Content 数据:避免父节点为自身,可在测试中把 id=1 的 parent_id 置 null 后调用 recover() 重建树。
- 日期依赖测试:上传路径等不要硬编码年月,改用 date('Y/m')。
限制与说明:5.3 系在资料编写时处于开发中;vendor 内的非推荐提示可暂不处理,等待 baser-core 侧更新;技能文件新增到 .claude/skills/ 后需重启 Claude Code 会话才会以 /basercms-plugin-5x-update 形式生效。