# APP MODULE KNOWLEDGE BASE **Generated:** 2026-04-26 ## OVERVIEW 多应用架构核心层,包含三个 ThinkPHP 应用(admin/index/api)、全局模型、共享工具和中间件。 ## STRUCTURE ``` app/ ├── BaseController.php # 抽象基类(validate/success/error/redirect) ├── Request.php # 自定义Request(空过滤器) ├── ExceptionHandle.php # 异常处理器 ├── UploadFiles.php # 文件上传静态服务类(非控制器) ├── common.php # 全局辅助函数(18个) ├── middleware.php # 全局中间件注册(CORS/Session/ConfigInit) ├── provider.php # 容器绑定 ├── event.php # 事件定义(全部为空) ├── command/ResetPassword.php # CLI: 重置admin密码 ├── admin/ # 后台管理应用 │ ├── controller/ # 15个控制器 │ ├── middleware.php # AdminLog/PermissionRecord(已注释) │ └── route/index.php # 空(自动路由) ├── index/ # 前台展示应用 │ ├── controller/ # 5个控制器(含BaseController/Common中间层) │ └── route/index.php # 文章详情+分类列表路由 ├── api/ # API接口应用 │ └── controller/ # WxOpen/Files/Captcha ├── model/ # 全局模型(17个) ├── common/ # 跨应用共享层 │ ├── model/Base.php # 模型基类(use AutoClearCache) │ ├── traits/ # AutoClearCache trait │ ├── tools/ # Sitemap/Rss/Image/PostShow/PostBlock/Site │ ├── Bootstrap.php # 自定义分页URL生成 │ ├── ColumnFormat.php # 迁移列辅助类 │ └── TextFormat.php # 文本格式化 ├── middleware/ # ConfigInit(启用) / AdminLog(禁用) / PermissionRecord(禁用) ``` ## WHERE TO LOOK | 任务 | 位置 | 备注 | |------|------|------| | 添加后台CRUD | `admin/controller/` | 继承 `admin\controller\Common`,Session自动鉴权 | | 添加前台页面 | `index/controller/` | 继承 `index\controller\Common`,自动加载导航/分类 | | 添加API | `api/controller/` | 继承 `app\BaseController`,无额外中间件 | | 添加模型 | `model/` | 继承 `common\model\Base`,声明 `$autoClearCache` | | 添加业务工具 | `common/tools/` | 纯PHP类,无框架约束 | | 修改上传逻辑 | `UploadFiles.php` | 静态方法,多编辑器适配入口 | | 修改权限逻辑 | `common.php` -> `check_permission()` | admin_id=1 超管 | | 添加全局函数 | `common.php` | ThinkPHP 自动加载 | | 添加CLI命令 | `command/` | 需在 `config/console.php` 注册 | ## 模型关系 ``` Post (SoftDelete, AutoClearCache) |-- hasMany -> PostCategory -> belongsTo -> Category (树形, AutoClearCache) |-- hasMany -> PostTag -> belongsTo -> Tag |-- hasMany -> PostComment |-- hasMany -> PostVisit (JSON: client/client_os/client_bot) Admin -> AdminGroup (SoftDelete) -> AdminPermission Admin -> AdminLog (SoftDelete) Nav (AutoClearCache, 多type: 导航/轮播/友链/平台) UploadFiles (SoftDelete, 状态: 未使用/已使用/已删除/已清除) SystemConfig (name-value键值对) User (SoftDelete) TempImg / WxPublicAccount ``` ## CONVENTIONS - **控制器响应**: AJAX -> `json_message()`,普通请求 -> `$this->success()`/`$this->error()` 渲染模板 - **模型缓存**: 继承 `common\model\Base` 自动获得 `AutoClearCache`,需声明 `$autoClearCache = ['cache_key']` - **无Validate类**: 全部行内验证 `$this->validate($data, $rules)` - **无独立Service层**: 业务逻辑直接在Controller中 - **事件系统未使用**: `event.php` 所有监听器为空数组 - **路由**: admin 自动路由,index 有自定义路由(短URL格式),api 自动路由 ## ANTI-PATTERNS - **UploadFiles.php 位置不当**: 静态服务类放在 `app/` 根命名空间,应在 `common/` 或 `service/` - **admin 中间件全部禁用**: AdminLog/PermissionRecord 被注释,操作审计和权限记录不工作 - **common.php 职责过多**: 347行混合了HTTP/权限/文件/URL/时间/缓存等多种职责 - **command/spider/ 空目录**: 废弃的爬虫功能未清理 - **common/response/ 空目录**: 未使用的响应封装层