浅析PHP开发规范

基本约定

源文件

代码使用<?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
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" : 100001,
  "msg" : "不具有权限"
}

其它

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

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

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

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

字符串使用单引号'

您可能感兴趣的文章:

  • thinkPHP5.0框架开发规范简介
  • 浅析php与数据库代码开发规范
  • PHP开发规范手册之PHP代码规范详解
(0)

相关推荐

  • thinkPHP5.0框架开发规范简介

    本文实例讲述了thinkPHP5.0框架开发规范.分享给大家供大家参考,具体如下: 命名规范 ThinkPHP5遵循PSR-2命名规范和PSR-4自动加载规范,并且注意如下规范: 目录和文件 目录不强制规范,驼峰及小写+下划线模式均支持: 类库.函数文件统一以.php为后缀: 类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致: 类名和类文件名保持一致,统一采用驼峰法命名(首字母大写): 函数和类.属性命名 类的命名采用驼峰法,并且首字母大写,例如 User.UserType,

  • PHP开发规范手册之PHP代码规范详解

    涉及多个方面,比如PHP代码规范.PHP文件命名规范.网站开发流程.网站安全与维护等.作为PHP开发规范的开篇,我从一个纯PHP开发者的角度来说说我所认为的PHP代码规范,主要从PHP目录框架结构.PHP代码书写规范.PHP文件命名规范三个角度来阐述,希望对PHP入门学习者有所帮助. 合理建设PHP目录框架结构 我们知道在使用PHP进行网站开发之前,我们需要建设网站的目录结构,网站目录框架结构设计得合理规范,不但有利于网站开发,而且对SEO,网站推广都有好处. 一般最基础的PHP网站结构涉及图片

  • 浅析php与数据库代码开发规范

    1.PHP中对各类变量内容的命名规范  (1)目录命名.文件命名.局部变量命名: 使用英文名词.动词,以下划线作为单词的分隔,所有字母均使用小写 目录:upload.templates.install.manage--文件:index.php . register.php  . config.php--变量:$user , $pay_time , $pay_del_cont -- (2)全局常量命名:使用英文名词.动词,所有字母都使用大写,以下划线分隔每个单词 define( 'WEBSITE_

  • 浅析PHP开发规范

    基本约定 源文件 代码使用<?php开头,忽略闭合标签?> 文件格式必须是无BOM UTF-8格式 一个文件只声明一种类型,如class和interface不能混写在一个源文件中 缩进 使用4个空格来缩进,IDE可以设置 行长度 每行120个字符 关键字 所有关键字均为小写,如true.false 命名 类名为大驼峰法,如UserModel 类方法名为小驼峰法,如getUserId() 函数使用小写字母加_组合,如get_cookie() 变量名使用小驼峰法,如$userId 常量定义为大写字

  • mysql数据库开发规范【推荐】

    最近一段时间一边在线上抓取SQL来优化,一边在整理这个开发规范,尽量减少新的问题SQL进入生产库.今天也是对公司的开发做了一次培训,PPT就不放上来了,里面有十来个生产SQL的案例.因为规范大部分还是具有通用性,所以也借鉴了像去哪儿和赶集的规范,但实际在撰写本文的过程中,每一条规范的背后无不是在工作中有参照的反面例子的.如果时间可以的话,会抽出一部分或分析其原理,或用案例证明. 一. 命名规范 1.库名.表名.字段名必须使用小写字母,并采用下划线分割 (1)MySQL有配置参数lower_cas

  • JAVA代码开发规范

    一.开发工具规范: 1. 开发工具经项目负责人调试后统一确定. 2. 开发工具一经确定不允许集成任何非统一插件,若有需要,经项目负责人同意后统一为 项目组成员添加. 3. 开发工具的编码格式不允许修改. 二.排版规范: 1. 关键词(或变量)和操作符之间加一个空格. 例如:int iCont = 1;//操作符和值之间有一个空格. 2. 相对独立的代码块与块之间加空行. 例如:两个方法之间需要用空格隔开. 3. 较长的语句.表达式等要分成多行书写. 4. 长表达式要在低优先级操作符处划分新行,操

  • Vue前端开发规范整理(推荐)

    基于Vue官方风格指南整理 一.强制 1. 组件名为多个单词 组件名应该始终是多个单词的,根组件 App 除外. 正例: export default { name: 'TodoItem', // ... } 反例: export default { name: 'Todo', // ... } 2. 组件数据 组件的 data 必须是一个函数. 当在组件中使用 data 属性的时候 (除了 new Vue 外的任何地方),它的值必须是返回一个对象的函数. 正例: // In a .vue fi

  • 浅析鸿蒙开发app支持JavaScript?上手HelloWorld,体验究竟香不香

    第一步:下载开发工具 Tips:小插曲 前面原本还想考虑下是否要去看鸿蒙os源代码,读点东西,然后上某乎装一手,但是看到了它码云上的开源仓库,我-一个截图,你们自己品吧 我只想说作为一个前端coder,打扰了,太难了 正式篇 要体验它的app开发那第一步肯定是打开它的官网下载它的ide啦,点击鸿蒙官网,它的界面是这样的: 哈哈,还是挺漂亮的,有逼格,我都想模仿一波了. 接下来我们来下载它的开发工具看看,点击HUAWEI DevEco Studio进入下载页面: 乍一看还以为是idea,哈哈哈,后

  • 浅析golang开发Error的使用详解

    Error是Go语言开发中最基础也是最重要的部分,跟其他语言的try catch的作用基本一致,想想在PHP JAVA开发中,try catch 不会使用,或者使用不灵活,就无法感知到程序运行中出现了什么错误,是特别可怕的一件事. Error 基础 Golang中 error类型就是一个最基本interface,定义了一个Error()的方法 type error interface { Error() string } 平常使用最多的是这样的 errors.New("error")

  • 阿里云官方Redis开发规范总结

    目录 一.键值设计 1. key 名设计 2. value 设计 3.[推荐]:控制 key 的生命周期,redis 不是垃圾桶. 二.命令使用 1.[推荐] O(N)命令关注 N 的数量 2.[推荐]:禁用命令 3.[推荐]合理使用 select 4.[推荐]使用批量操作提高效率 5.[建议]Redis 事务功能较弱,不建议过多使用 6.[建议]Redis 集群版本在使用 Lua 上有特殊要求: 7.[建议]必要情况下使用 monitor 命令时,要注意不要长时间使用. 三.客户端使用 1.[

随机推荐