# 规范

注意

StartCMS遵循PSR-2命名规范和PSR-4自动加载规范,并且采用标准CMS分层设计,
请理解并尽量遵循以下命名规范,可以减少在开发过程中出现不必要的错误。

# 目录和文件

  • 目录使用小写+下划线;
  • 类库、函数文件统一以.php为后缀;
  • 类名 和文件名保持一致,统一采用驼峰法命名(首字母大写);
  • 类文件 采用驼峰法命名(首字母大写);例如 User、UserType;
  • 命名空间 和类库文件所在路径一致;

# 方法和属性

  • 方法的命名使用驼峰法(首字母小写),例如 getUserName;
  • 方法的参数命名使用小写字母+下划线(与数据表字段一致),例如 getUserName($user_id)
  • 属性的命名使用驼峰法(首字母小写),例如 tableName、instance;
  • 函数的命名使用小写字母和下划线方式(小写字母开头),例如 get_client_ip;
  • 特例:以双下划线__打头的函数或方法作为魔术方法,例如 __call 和 __autoload;

# 常量和配置

  • 常量以大写字母和下划线命名,例如 APP_PATH;
  • 配置参数以小写字母和下划线命名,例如 url_route_on 和url_convert;
  • 环境变量定义使用大写字母和下划线命名,例如APP_DEBUG;

# 数据表字段

  • 数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,
  • 不建议使用驼峰和中文作为数据表及字段命名。
  • 建议主键统一使用id命名,外键统一使用数据表名+_id,例如user表主键为id,在其他表中为user_id
  • 建议英文名称统一使用name,中文名称统一使用title(人名除外)

# 模型、服务和控制器

  • 模型、服务与控制器文件都遵循文件命名规范
  • 服务文件名统一以Service结尾,前缀与模型名保持一致,如User模型与UserService服务
  • 控制器名和模型名保持一致,如User控制器与User模型一致(仅调用服务层故无需添加Controller后缀)

关于分层调用

  • 模型 主要实现模型关联及数据读写:仅调用模型
  • 服务 主要实现业务逻辑及模型操作:仅调用自身关联模型或其他服务,禁止直接调用其他模型,如需读写其他模型请通过调用相应服务方法操作
  • 控制器 主要实现权限接口和数据校验:仅调用相关服务,禁止直接调用模型或DAO类以及其他控制器

关于应用调用

  • 应用与应用之间优先采用事件通讯
  • 应用与应用之间服务的调用通过定义应用门面接口

# 参数、变量和动静态

  • 建议接口参数及运行变量统一使用小写字母+下滑线,便于页面-接口-服务-模型-数据链条统一传递

各层接口命名规范

分层 文件命名 方法命名 动静态优先级 常用方法命名
model
(模型)
法则:驼峰命名法(首字母大写)
规则:名词
法则:驼峰命名法(首字母小写)
读取:名词 / 形容词
更新:动词 / 动词+名词
动态优先 page: 分页查询
list: 列表查询
info: 详情查询
create: 创建记录
update: 更新记录
remove: 删除记录(软删除)
delete: 删除记录(硬删除)
service
(服务)
法则:驼峰命名法(首字母大写)
规则:名词 + Service
法则:驼峰命名法(首字母小写)
规则:动词 / 动词+名词
静态优先 getPage: 分页查询
getList: 列表查询
getInfo: 详情查询
create: 创建记录
update: 更新记录
remove: 删除记录(软删除)
delete: 删除记录(硬删除)
updateList: 更新列表
updateStatus: 更新状态
controller
(控制器)
法则:驼峰命名法(首字母大写)
规则:名词
法则:驼峰命名法(首字母小写)
读取:名词 / 形容词
更新:动词 / 动词 + 名词
动态优先 page: 分页查询
list: 列表查询
info: 详情查询
create: 创建记录
update: 更新记录
remove: 删除记录
updateList: 更新列表
updateStatus: 更新状态

上次更新: 10/20/2022, 10:32:48 AM