总结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 和 MySQL 基础教程(二)
Oct 09 PHP
php常用Output和ptions/Info函数集介绍
Jun 19 PHP
PHP页面中文乱码分析
Oct 29 PHP
php实现读取超大文件的方法
Jul 28 PHP
帝国cms常用标签汇总
Jul 06 PHP
使用PHP实现生成HTML静态页面
Nov 18 PHP
Laravel路由设定和子路由设定实例分析
Mar 30 PHP
php 在字符串指定位置插入新字符的简单实现
Jun 28 PHP
PHP并发查询MySQL的实例代码
Aug 09 PHP
PhpStorm配置Xdebug调试的方法步骤
Feb 02 PHP
PHP pthreads v3下worker和pool的使用方法示例
Feb 21 PHP
php7 图形用户界面GUI 开发示例
Feb 22 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
3.从实例开始
2006/10/09 PHP
php验证session无效的解决方法
2014/11/04 PHP
php+mysql大量用户登录解决方案分析
2014/12/29 PHP
实例讲解yii2.0在php命令行中运行的步骤
2015/12/01 PHP
thinkphp实现图片上传功能
2016/01/13 PHP
地震发生中逃生十大法则
2008/05/12 Javascript
jquery ui dialog里调用datepicker的问题
2009/08/06 Javascript
JavaScript 自动分号插入(JavaScript synat:auto semicolon insertion)
2009/11/04 Javascript
Jquery 快速构建可拖曳的购物车DragDrop
2009/11/30 Javascript
javascript 弹出层组件(升级版)
2011/05/12 Javascript
javascript页面渲染速度测试脚本分享
2014/04/15 Javascript
JavaScript数组合并的多种方法
2016/05/22 Javascript
JS图片压缩(pc端和移动端都适用)
2017/01/12 Javascript
JavaScript 事件流、事件处理程序及事件对象总结
2017/04/01 Javascript
node.js(express)中使用Jcrop进行图片剪切上传功能
2017/04/21 Javascript
jQuery实现文件编码成base64并通过AJAX上传的方法
2018/04/12 jQuery
jQuery+ajax实现动态添加表格tr td功能示例
2018/04/23 jQuery
浅谈Vue.use的使用
2018/08/29 Javascript
vue2使用keep-alive缓存多层列表页的方法
2018/09/21 Javascript
js根据json数据中的某一个属性来给数据分组的方法
2018/10/08 Javascript
JS阻止事件冒泡的方法详解
2019/08/26 Javascript
Python3 伪装浏览器的方法示例
2017/11/23 Python
opencv python 图像轮廓/检测轮廓/绘制轮廓的方法
2019/07/03 Python
Python读取Excel一列并计算所有对象出现次数的方法
2020/09/04 Python
css3 transform导致子元素固定定位变成绝对定位的方法
2020/03/06 HTML / CSS
详解Canvas事件绑定
2018/06/27 HTML / CSS
香蕉共和国工厂店:Banana Republic Factory
2018/06/09 全球购物
瑞士设计师家具和家居饰品网上商店:Bruno Wickart
2019/03/18 全球购物
Java提供了哪些企业应用编程接口
2015/02/13 面试题
迟到检讨书400字
2014/01/13 职场文书
火锅店创业计划书范文
2014/02/02 职场文书
职业女性的职业规划
2014/03/04 职场文书
竞选班长演讲稿500字
2014/08/22 职场文书
实习生辞职信范文
2015/03/02 职场文书
Python读取文件夹下的所有文件实例代码
2021/04/02 Python
教你利用Nginx 服务搭建子域环境提升二维地图加载性能的步骤
2021/09/25 Servers