用途:整理 baserCMS 5 系(基于 CakePHP 5)插件新建与改造时的功能别编码模式。环境与命名等通用规则、主题开发、4→5 迁移、单元测试、自定义内容开发需参考其他资料。
创建方式:用 bin/cake bake bc_plugin {PluginName} 生成雏形,bin/cake bake bc_all {ModelName} --plugin {PluginName} 生成 Table/Entity/Controller/模板。插件类继承 \BaserCore\BcPlugin,setting.php/config.php 写静态 return 数组,动态设置放 bootstrap();禁用修改 vendor 内核心文件。管理菜单在 setting.php 注册,plugin 与 controller 均用 CamelCase,否则管理画面可能 404。启用可通过插件管理或 plugins 表 status=1,无需 composer 注册。
主要能力与写法:Table 负责校验与业务逻辑,Entity 负责行数据行为,DB 变更用 Migration。关联在 initialize() 声明、别名用复数;IN 查询须显式写 'field IN' => (array)$values;跨关联筛选用 innerJoinWith/matching。保存走 newEntity/patchEntity 后 save。管理控制器放 src/Controller/Admin/,经插件 Admin 基类继承;分页用 $this->paginate($query);redirect 必须 return(void 方法除外)。表单用 $this->BcAdminForm->control(),搜索表单放 templates/Admin/element/search/{name}.php。事件监听器放 src/Event/,文件名与类名须严格匹配,否则静默不生效。Vue 打包需改源码后用 webpack 重新构建,ajax 返回需在响应中设置类型与字符串体。
限制:资料未提供收费、价格、版本兼容范围或效果保证。