PHP研发开发规范2

网友投稿 688 2022-11-14

PHP研发开发规范2

PHP研发开发规范2

​​1 php编码规范​​

​​1.1 php开发工具​​​​1.2 使用fis3上传代码​​​​1.3 编码规范参照百度代码规范执行​​​​1.4 代码注释​​

​​2 odp开发规范​​

​​2.1 action基类​​​​2.2 dao基类​​​​2.3 脚本​​​​2.4 日志​​​​2.5 parent-phplib库公共方法​​​​2.6 rpc调用​​​​2.7 接口规范​​​​2.7 其他​​

​​3 mysql​​

​​3.1 表设计​​​​3.2 表注释​​

1 php编码规范

1.1 php开发工具

统一使用phpstorm开发代码格式化统一使用prettier​​​Watchers默认没勾选上,需要自己在勾选下

2. prettier的watcher配置如下

3. 每个项目git仓库会增加一个配置文件.prettierrc,严禁修改

1.2 使用fis3上传代码

docker和开发机都可以使用fis3上传代码,操作步骤如下:

1) 在自己电脑上按照好fis3工具

2)将fis3执行脚本放在php项目根目录下,注意在.gitignore添加此文件,不要把此脚本提交到git仓库里,脚本请到这里-:​​

3)修改脚本的App和RemoteServer两个参数,app是项目名字,RemoteServer中修改想要上传的目标服务器域名

4)在项目根目录下执行命令(fis3 release -Lw),每次执行会先全量上传整个项目,然后脚本会一直监控,每当有文件修改会自动上传

1.3 编码规范参照代码规范执行

1.4 代码注释

文件、类和函数必须写注释

一定不要因为代码或者文件复制过来的而不去修改注释

phpstorm设置注释模板,进入设置:Editor-》File and Code Tempates-》PHP File Header

phpstorm添加函数注释快捷方式,在函数上方输入/**,然后回车就会自动生成函数注释

文件注释示例


​/**​

​* @befie 示例                             # 功能说明​

​* @file XX.php                          ​

​* @author xxx<xxx@zuoyebang.com>         # 作者​

​* @version 1.0                          ​

​* @since   1.1 2020-06-10 第二版 @xingfu  # 更新说明​

​* @date 2019-05-19                       # 创建时间​

​*/​


函数注释示例


​/**​

​* 函数功能​

​* @param 参数1​

​* @param 参数2​

​* @return 返回值​

​* @throws Exception​

​*/​


2 odp开发规范

2.1 action基类

parent-phplib库统一封装了各种场景的action基类,各个服务里不要在自己封装action基类

2.2 dao基类

parent-phplib库统一封装了dao基类,各个服务里请直接使用lib库的基类

说明:hk库共有3个dao基类,除了下面这2个,还有个Hk_Common_Dao,之前封装了一个基于此类的Parentlib_Dao_Base

dao基类

说明

方法

Parentlib_Common_BaseDao

此基类用于单表dao,继承至Hk_Common_BaseDao

获取查询字段数组:getQueryFields

查询带分页的列表数据:getPageList

查询列表数据,并返回是否还有下一页:getMoreList

Parentlib_Common_BaseMultiDao

此基类用于分表dao,继承至Hk_Common_BaseMultiDao

获取查询字段数组:getQueryFields

按环境获取分表数量:getMaxTableNum

查询所有表数据:queryAllTable

查询带分页的列表数据:getPageList

查询列表数据,并返回是否还有下一页:getMoreList

2.3 脚本

脚本文件严禁直接创建在/script根目录下按照模块创建目录模块目录内的脚本类型分为守护进程deamon、定时任务cron和一次性任务once,分表创建目录,见下图

2)脚本编码

脚本文件名字必须以大写字母开头脚本统一继承脚本基类Parentlib_Common_BaseScript脚本必须写完整注释,定时任务需要在注释里写清楚crontab计划脚本内打info日志直接使用Bd_Log::addNotice,基类会统一打一条日志脚本里注释填写好jira工单地址脚本一定要写到自己相关的项目里

2.4 日志

代码里打日志的地方一定要想清楚该往info还是wf里写

wf日志:不要什么错误都往wf里打,Bd_Log::warning()和Bd_Log::fatal()每次请求都会打一条日志,一次接口请求里代码多次调用会打多条wf日志,影响接口错误里的统计

info日志:一次接口请求框架会最后打一条info日志,不要在代码中使用Bd_Log::notice(),应该使用Bd_Log::AddNotice()

2.5 parent-phplib库公共方法

parent-phplib库封装了公共的ds,service和util,开发时统一使用公共库的方法,不要重复造轮子

使用手册见wiki:​​parent-phplib库使用手册​​

2.6 rpc调用

每个项目调用一个第三方服务时,在library/XX/rpc/目录下封装一个类来统一封装这个第三方服务的所有接口,不要在其他地方分散去单独写,方便维护和管理

2.7 接口规范

入参和出参字段必须使用驼峰

2.7 其他

不要直接复制目录或者文件到其他项目,按需获取,无效的代码要删除测试接口不要对外发布,如果有测试需要一定要继承内网的action

3 mysql

3.1 表设计

表名称以tbl开头,驼峰格式命名,字段名字使用下划线的格式,不要用驼峰非text字段一定要设置NOT NULL注意id字段的长度,比如公司的用户uid一定要用bigint记录id不要用自增id,要用发号器生成的id

3.2 表注释

一定要写表名称和字段的注释,自增id也需要写注释枚举字段主要把每个值含义写到注释里

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:log4j的8个日志级别(OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL)
下一篇:SharedingSphere 自定义脱敏规则介绍
相关文章

 发表评论

暂时没有评论,来抢沙发吧~