用途:为 baserCMS 4 系(内部基于 CakePHP 2.10)搭配 jQuery 的项目提供开发规则,适用于开发、修改 4 系插件、编写 CakePHP 2 系代码,以及处理 app/Plugin 下的 Controller/Model/View 和主题文件。
技术栈:后端 PHP 7.4〜8.2、CakePHP 2 系;数据库 MySQL 5.7〜8.0;前端 jQuery 1.x〜3.x(项目内可能混用多个版本);HTTP 服务器 Apache(需启用 mod_rewrite)。
目录结构:遵循 CakePHP 2 系 MVC 且以插件为单位构建,代码置于 app/Plugin/{插件名}/Controller、Model、View;公共部件放在主题的 Elements 目录(theme/{主题名}/Elements/,部分环境为 app/webroot/theme/{主题名}/Elements/),布局放在 Layouts 目录,可通过 $this->layout 切换;管理画面由 /admin/ 前缀路由控制,配置于 app/Config/core.php,定义 Configure::write('Routing.prefixes', array('admin'));。
编码与命名:多为函数式、过程式写法;JavaScript 写在 View 的 script 标签或 .js 文件中,Ajax 用 jQuery 的 $.ajax(),不使用 ES6 的 Promise、fetch、import/export,不引入 React、Vue 等 SPA 技术;遵循 baserCMS 与 CakePHP 的命名惯例。
日志:PHP 使用 CakeLog::error() 或 error_log(),JavaScript 暂用 console.error();可在配置文件中定义专用日志。
文件分类:lib/Baser/、lib/Cake/ 为只读;app/Config/database.php、app/Config/core.php、app/Console/cake、app/webroot/index.php 与 .htaccess 仅供调查设置,禁止修改。
限制:禁止核心 hack,不需提出更换 Laravel 或 CakePHP 4 系等框架、也不需建议现代 JS 框架;需考虑 PHP 7.2 限制、保持 jQuery 1.x〜3.x 兼容、使用在 MySQL 5.7〜8.0 均可运行的 SQL。