基本约定

源文件

代码使用<?php开头,忽略闭合标签?>

文件格式必须是无bom utf-8格式

一个文件只声明一种类型,如class和interface不能混写在一个源文件中

缩进

使用4个空格来缩进,ide可以设置

行长度

每行120个字符

关键字

所有关键字均为小写,如true、false

命名

类名为大驼峰法,如usermodel

类方法名为小驼峰法,如getuserid()

函数使用小写字母加_组合,如get_cookie()

变量名使用小驼峰法,如$userid

常量定义为大写字母加_组合,如is_debug

代码注释标签

类文件中对类、方法、属性进行注释,使用@param @return @throwns

@param注释写出详解,如@param string $username 用户名

 

业务模块

路由为小写字母加_组成,如/api/get_user_info

view层负责数据展示

controller层负责输入参数校验,最外层捕捉异常,调用logic和view视图层

logic层负责具体业务逻辑,调用model层,返回处理数据

model层负责数据表查询和关联关系

异常类需分清功能,如paramexception表示参数错误,userexception表示自定义异常

异常需分类定义code,使用php类常量代替,如

<?php
namespace app\exceptions\codes;

class userexceptioncode extends baseexceptioncode {
  const no_auth       = 1000001;
  const no_auth_msg     = '不具有权限';
  const status_exception   = 1000002;
  const status_exception_msg = '状态异常';    
}

 

数据表文件如有enum类型,使用php类常量代替,如

<?php
<?php
namespace app\enums;

class userenum extends baseenum {
  const status_deleted = -1;// 已删除
  const status_disable = 0;// 禁用
  const status_enable = 1;// 正常

  const auth_guest     = 1;// 匿名用户
  const auth_general_admin = 2;// 普通管理员
  const auth_super_admin  = 3;// 超级管理员
}

 

其中status和auth为数据表映射字段名

api接口输出,示例

{
  "code" : 0,
  "msg" : "success",
  "data" : {
    "userid" : 100
  }
}

 

其中code与msg为必填字段,data为空的情况下不填,示例

{
  "code" : 0,
  "msg" : "success",
  "data" : {
    "userid" : 100
  }
}

 

其它

数组,键为字符串时候使用单引号,只有一个键时候使用单行,示例

$arr = [ 'userid' => 100 ];

 

多个键时候使用多行,示例

$arr = [
  'id'    => 100,
  'username' => 'admin',
];

 

还有很多很多规范,大家可以去找一些学习!