总结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 相关文章推荐
如何限制访问者的ip(PHPBB的代码)
Oct 09 PHP
html中select语句读取mysql表中内容
Oct 09 PHP
用PHP实现的随机广告显示代码
Jun 14 PHP
在PHP中使用反射技术的架构插件使用说明
May 18 PHP
php通过array_merge()函数合并两个数组的方法
Mar 18 PHP
PHP中创建和验证哈希的简单方法实探
Jul 06 PHP
PHP读书笔记_运算符详解
Jul 01 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
Jan 17 PHP
php实现通过soap调用.Net的WebService asmx文件
Feb 27 PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
May 24 PHP
PHP从零开始打造自己的MVC框架之入口文件实现方法详解
Jun 03 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
Feb 27 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
安健A254立体声随身听的分析与打磨
2021/03/02 无线电
用 JavaScript 迁移目录
2006/12/18 Javascript
再谈javascript 动态添加样式规则 W3C校检
2009/12/25 Javascript
DIY jquery plugin - tabs标签切换实现代码
2010/12/11 Javascript
IE下Ajax缓存问题的快速解决方法(get方式)
2014/01/09 Javascript
Javascript基础教程之JavaScript语法
2015/01/18 Javascript
JavaScript的jQuery库中ready方法的学习教程
2015/08/14 Javascript
使用 JavaScript 进行函数式编程 (一) 翻译
2015/10/02 Javascript
关于验证码在IE中不刷新的快速解决方法
2016/09/23 Javascript
jquery 追加元素append、prepend、before、after用法与区别分析
2016/12/02 Javascript
JavaScript 过滤关键字
2017/03/20 Javascript
解决Vue编译时写在style中的路径问题
2017/09/21 Javascript
Node.js自定义实现文件路由功能
2017/09/22 Javascript
Vue2.0 给Tab标签页和页面切换过渡添加样式的方法
2018/03/13 Javascript
vue-swiper的使用教程
2018/08/30 Javascript
JavaScript实现美化滑块效果
2019/05/17 Javascript
layer.open 获取不到表单信息的解决方法
2019/09/26 Javascript
在Chrome DevTools中调试JavaScript的实现
2020/04/07 Javascript
横向对比分析Python解析XML的四种方式
2016/03/30 Python
举例讲解Python编程中对线程锁的使用
2016/07/12 Python
Python读写Json涉及到中文的处理方法
2016/09/12 Python
Python判断某个用户对某个文件的权限
2016/10/13 Python
Python自动化运维之IP地址处理模块详解
2017/12/10 Python
详解Numpy中的广播原则/机制
2018/09/20 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
2019/07/07 Python
Python实现快速排序的方法详解
2019/10/25 Python
Nike爱尔兰官方网站:Nike.com (IE)
2018/03/12 全球购物
运动会广播稿30字
2014/01/21 职场文书
总经理助理职责
2014/02/04 职场文书
优秀共产党员演讲稿
2014/09/04 职场文书
党支部承诺书
2015/01/20 职场文书
预备党员入党感想
2015/08/10 职场文书
详解Go语言运用广度优先搜索走迷宫
2021/06/23 Python
SpringBoot连接MySQL获取数据写后端接口的操作方法
2021/11/02 MySQL
java获取一个文本文件的编码(格式)信息
2022/09/23 Java/Android
Mysql如何查看是否使用到索引
2022/12/24 MySQL