总结PHP代码规范、流程规范、git规范


Posted in PHP onJune 18, 2018

代码规范、git规范、teambition规范、yii规范

1. 命名规范

(1).变量命名规范

1.变量使用驼峰命名法 禁止使用拼音或者拼音加数字

2.变量也应具有描述性,杜绝一切拼音、或拼音英文混杂的命名方式

3.变量包数字、字母和下划线字符,不允许使用其他字符,变量命名最好使用项目 中有据可查的英文缩写方式, 尽可以要使用一目了然容易理解的形式;

4.变量以字母开头,如果变量包多个单词,首字母小写,当包多个单词时,后面 的每个单词的首字母大写.例如 :$itSports

5.变量使用有效命名

例如评论:$commentArr

6.变量属性标记清楚

例如 数组变量后加Arr :$commentArr,数值: $commentInt

7.变量除了在循环体(for,foreach,while)中,其他位置允许但不鼓励使用没有描述意义的字母作为变量名。

例如:$i,$j。

(2).常量命名规范

1.常量名应具有描述性,杜绝一切拼音、或拼音英文混杂的命名方式

2.常量名包字母字符和下划线,不允许使用数字和其他字符。

3.PHP 的内建值 TRUE、FALSE 和 NULL 必须全部采用大写字母书写。

4.常量名所有字母必须大写,少数特必要的情况下,可使用划线来分隔单词。

例如: define(‘AAA_BBB_CCC', ‘true'); (如果常量名由 aaa, bbb, ccc 三个单词组成 的)

define('NAME','root')

(3).类名命名规范

1.一个文件中声明一个类,文件名中必须包类名字符串,这些不仅容易查找,也有 利于实现在程序中自动加载类。
2.类名应有描述性,杜绝一切拼音、或拼音英文混杂的命名方式
3.类名包括字母字符,不允许使用数字和其他字符
4.如果类名包括多个单词,应使用驼峰式命名方式,每个单词的第一个字母必须大写, 不允许连续大写。
类 首字母大写 如 : class Comment{}

AaaBbbCcc (如果类名由 aaa, bbb, ccc 三个单词组成的)

(4).方法命名规范

1.函数名应具有描述性,杜绝一切拼音、或拼音英文混杂的命名方式
2.函数名包括字母字符,不允许使用数字和其他字符。
3.函数名首字母小写,当包多个单词时,后面的每个单词的首字母大写.
例如: aaaBbbCcc (如果函数名由 aaa, bbb, ccc 三个单词组成的)

4.函数名应带有get,set等动作性描述。

function getUser(){ //函数内容 } 方法,函数有效命名 :function getCommentIdByTableName(){}

5.可以声明像函数名前带有下划线的形式,表示该函数为该类的私有方法,外部不允许进行访问。

例如:function _func(){}

2. 代码注释

1.注释格式

/**

模块-大功能-功能点或方法作用

* @author 作者<邮箱>

* @create 创建时间

* @param $name

* @return array

*/

注释必须按照规范注释

2 . 行注释

// 1.行注释前标清 1、2、3...

//2.简短说明该行代码的作用。

3. 需求明确

1.逻辑清晰

2.目标明确

4.代码语句规范

2.保存数据规范

1.初始化默认属性

2.load加载属性 save保存或修改

3.逻辑问题 必须在beforeSave中处理

5.代码提交规范

1.新建工作流(代码必须在工作流上面修改)

2.提交时 先提交代码,在切换到dev , 拉取dev 然后进入工作流合并到工作流

3.进入dev,将工作流合并到dev

4.推送到测试环境

5.代码提交格式

【自己的现在的职务】系统功能 - 大功能 - 详细功能

例如 : [开发]云系统 - 前台首页 - 编辑轮播图
详细步骤

1. 打开自己sourceTree,在dev拉取最新代码

2. 点击顶部菜单 “Git工作流”->创建新功能->创建到以自己姓名名称命名的文件夹内便于区分,功能名称是自己做的功能的名称

3.创建完成,比如是feature/lihuien/首页轮播图管理

4.代码完成后,首先点击顶部菜单 “提交”->然后切换分支到dev->dev拉取最新代码->在切换到工作流

5.单击dev,然后右键,会出现“合并dev至当前分支”->点击

6.然后切换到dev->单击工作流右键 ->出现“合并工作流feature/lihuien/首页轮播图管理代码至当前分支”,点击确定

7.最后点击顶部菜单“推送”->选择dev->确定->切换到自己工作流或者在创建新的工作流进行下一个功能开发

提示:如果提交出现冲突,请找冲突文件中相应的开发一起及时解决,不得擅自解决,以防会往代码库传入垃圾代码或者破坏队友的功能完整性

6.Teambition任务卡片规范

1.自己每天的任务,如果完成就及时点掉

2.如果任务延期 标清延期原因

3.如果需要别人合作 就添加任务关联

4.自己每天上班必须填写自己任务卡片

5.如果任务需要挂起 写清楚挂起原因

6.写清楚备注,填写子任务,如果有需要就添加图片描述

任务具体格式:

【自己的现在的职务】系统功能 - 大功能 - 详细功能

[开发]云系统 - 后台 - 员工列表

备注:

1.修改员工信息

2.列表搜索等...

子任务1 【开发】员工列表 - 删除员工 - js返回提示

7.提示返回值

1.true时返回格式

`return json_encode(['status'=>'success','message'='提示信息','data'=>'需求数据'])`

2.false时返回格式

`return json_encode(['status'=>'error','message'='提示信息','data'=>'修改失败(或者错误信息)'])`

二.云运动环境规范

1.安装软件

2.服务器 : xampp 需要安装

3.数据库 : mysql 5.7版本 需要安装

4.版本控制 : Git 需要安装

5.git客户端 : sourceTree 需要安装

6.编辑器 : phpStorm 需要安装带注册码

7.包管理工具 : composer 需要安装

8.浏览器 : chrome 需要安装

2.开发使用环境

1.编辑器 : phpStorm

2.服务器 : xampp (php7.0版本)

3.数据库 : mysql 5.7版本

4.代码仓库 : coding

5.版本控制 : Git

6.git客户端 : sourceTree

7.包管理工具 : composer

8.浏览器 : chrome

3.团队工具

1.聊天工具 : bearyChat

2.任务工具 : teambition

3.代码托管 : coding/gitlab

4.需求账号

1.腾讯企业邮箱账号

2.coding账号

3.gitHub账号

4.bearyChat账号

5.teambition账号

5.需求,原型,开发

1.如果在了解需求或原型时 遇到不懂或逻辑不通的需求 请及时跟对应的原型进行沟通,保持开发和原一致性

2.如果遇到问题不能及时解决 请及时跟对应的开发人员沟通

6.sourceTree 规范

1.Master

1.Master分支为线上环境分支
2.该分支只能管理员提交或合并
3.除管理员,禁止开发人员私自操作Master
4.永远不要将代码直接提交到该分支

2. Dev

1.Dev分支为系统测试分支
2.提交到Dev分支一定是完成的完整功能模块
3.代码需要自己测试通过及管理员审核后再提交
4.切记不能提交半成品或者垃圾代码
5.切记不能直接在Dev分支上面修改代码,否则视为无效代码
6.需要开发自己的任务功能时,创建自己的feature工作流

3. Feature

1.Feature分支为个人的开发分支
2.该分支为任务、功能、修改bug的分支
3.分支命名必须规范 如:feature/lihuien/公共分页类
4.上班第一件事就是拉取Dev代码合并到自己的工作流,预防代码合并冲突

注意:

(1).代码未完成千万不能直接提交到Dev、提交代码一定按照规范

(2).每隔一个小时必须更新一次代码,如果有未提交并且自己功能未开发完整,切记一定要推到自己远程功能分支上

7.数据迁移

1.数据迁移一定要按照规范来写
2.数据属性一定要问明白,在增加
3.迁移一定要写回滚文件
4.迁移后一定要测试无误后在提交到Dev
注意:一定要迁移及回滚测试无误后在提交代码到代码库,否则重新写

8.Yii中Form表单

1.Form 表单验证时 定义的属性 如果重复请使用常量定义后,使用常量,避免重复使用

PHP 相关文章推荐
PHP无限分类的类
Jan 02 PHP
使用 eAccelerator加速PHP代码的方法
Sep 30 PHP
c#中的实现php中的preg_replace
Dec 21 PHP
PHP XML操作的各种方法解析(比较详细)
Jun 17 PHP
PHP中几个常用的魔术常量
Feb 23 PHP
PHP file_exists问题杂谈
May 07 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
Mar 12 PHP
利用php输出不同的心形图案
Apr 22 PHP
thinkPHP自动验证机制详解
Dec 05 PHP
Laravel中Facade的加载过程与原理详解
Sep 22 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 PHP
ThinkPHP5.0多个文件上传后找不到临时文件的修改方法
Jul 30 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
Jun 16 #PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
Jun 16 #PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
Jun 16 #PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
Jun 16 #PHP
PHP7.1实现的AES与RSA加密操作示例
Jun 15 #PHP
PHP观察者模式示例【Laravel框架中有用到】
Jun 15 #PHP
PHP堆栈调试操作简单示例
Jun 15 #PHP
You might like
Zend Framework自定义Helper类相关注意事项总结
2016/03/14 PHP
[原创]解决wincache不支持64位PHP5.5/5.6的问题(提供64位wincache下载)
2016/06/22 PHP
搭建自己的PHP MVC框架详解
2017/08/16 PHP
JSON PHP中,Json字符串反序列化成对象/数组的方法
2018/05/31 PHP
php压缩文件夹最新版
2018/07/18 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
jQuery 1.4 15个你应该知道的新特性(译)
2010/01/24 Javascript
jquery向.ashx文件post中文乱码问题的解决方法
2011/03/28 Javascript
Jquery对数组的操作技巧整理
2014/03/25 Javascript
下拉框select的绑定示例
2014/09/04 Javascript
JS跨域问题详解
2014/11/25 Javascript
Javascript HTML5 Canvas实现的一个画板
2020/04/12 Javascript
jQuery实现贪吃蛇小游戏(附源码下载)
2017/03/04 Javascript
bootstrap模态框远程示例代码分享
2017/05/22 Javascript
详解JS数据类型的值拷贝函数(深拷贝)
2017/07/13 Javascript
详解ES6之async+await 同步/异步方案
2017/09/19 Javascript
BootStrap自定义popover,点击区域隐藏功能的实现
2018/01/23 Javascript
如何通过shell脚本自动生成vue文件详解
2019/09/10 Javascript
解决element-ui里的下拉多选框 el-select 时,默认值不可删除问题
2020/08/14 Javascript
python中常用的九种预处理方法分享
2016/09/11 Python
在Django中输出matplotlib生成的图片方法
2018/05/24 Python
Python中if elif else及缩进的使用简述
2018/05/31 Python
python中使用print输出中文的方法
2018/07/16 Python
Django框架使用mysql视图操作示例
2019/05/15 Python
python pandas 时间日期的处理实现
2019/07/30 Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
2019/09/15 Python
在django中使用post方法时,需要增加csrftoken的例子
2020/03/13 Python
如何在sublime编辑器中安装python
2020/05/20 Python
如何在Windows中安装多个python解释器
2020/06/16 Python
Selenium关闭INFO:CONSOLE提示的解决
2020/12/07 Python
.net工程师笔试题
2012/06/09 面试题
农药学硕士毕业生自荐信
2013/09/25 职场文书
五年级语文教学反思
2014/01/30 职场文书
财务支持类个人的自我评价
2014/02/14 职场文书
推荐信格式要求
2014/05/09 职场文书
治庸问责工作总结
2015/08/11 职场文书