Skip to content

概述

系统开发遵循 PSR-12PSR-4 规范。所有后端业务代码必须遵循严格的分层调用规则与编码约定。


严格四层架构 (禁止跨层绕过)

mermaid
graph TD
    Controller["Controller 控制器 (app/controller/)"] --> Services["Services 业务服务层 (app/services/)"]
    Services --> DAO["DAO 数据访问层 (app/dao/)"]
    DAO --> Model["Model ORM 模型 (app/model/)"]

层次职责

  • Controller:负责参数校验(调用 validate/)、参数提取(getMore() / postMore())与响应封装,不写复杂业务逻辑;
  • Services:负责核心业务编排、事务处理(transaction())与多表关联数据组装;
  • DAO:负责具体的数据库查询条件组装(必须继承 app\dao\BaseDao 并实现 setModel());
  • Model:负责数据表字段映射、关联关系定义与搜索器(必须继承 crmeb\basic\BaseModel)。

严禁规则

  1. 必须使用 Services 或 DAO 类操作数据,严禁在控制器中直接 Db::table()User::where()
  2. 严禁使用 $this->services->dao->... 穿透调用
  3. 模型只写搜索器条件,数据转换与组装必须在 Services 层完成
  4. 业务异常统一抛出 \app\exceptions\AuthException('错误描述', 400),由全局异常处理器统一拦截输出。

命名规范

类别规范示例
目录 / 静态文件名小写 + 下划线user_address
类名 / 类文件名大驼峰 (PascalCase)UserAddress.php
控制器方法小写 + 下划线 (蛇形)get_client_ip()
Service / DAO 方法小驼峰 (camelCase)getUserInfo(), getSearchList()
属性变量小驼峰 (camelCase)$tableName, $userServices
常量 / 环境变量全大写 + 下划线APP_DEBUG, DEFAULT_TIMEZONE
数据表 / 字段小写 + 下划线eb_store_order, user_id

文件编码要求

  • 所有 PHP / JS / Vue / SQL 文件默认保持 UTF-8 (无 BOM) + LF 换行符 编码;
  • 严禁汉字乱码与文件编码混用。

承信租多门店租赁商城系统官方文档