开发团队的个人能力良莠不齐,代码风格也各有风格.为了提高项目整体编码质量,降低代码的维护难度,制定此编码规范。
-
编码规范
-
1. 标签
-
2. 编码
-
3. 注释
-
3.1 单行注释
-
3.2 多行注释
-
3.3 文件注释
-
3.4 类注释
-
3.5 方法注释
-
3.6 属性注释
-
-
4. 命名规范
-
4.1 文件命名
-
4.1.1 类文件使用Pascal命名方法,所有单词首字母大写
-
4.1.2 配置文件使用小写
-
-
4.2 函数、方法明明使用Camel命名方法,首字母小写,其他单词首字母大写
-
4.3 变量使用Camel 命名方法,首字母小写,其他单词首字母大写
-
4.4 常量命名全部使用大写,使用下划线分隔多单词
-
-
5. 书写规范
-
5.1 文件
-
5.2 行
-
5.3 缩进
-
5.4 控制结构
-
5.4.1 if
-
5.4.2 for
-
5.4.3 foreach
-
5.4.4 switch
-
5.4.5 while,do while
-
5.4.6 try catch
-
-
5.5 运算符
-
5.6 引号
-
5.7 关键词
-
5.8 类
-
5.9 类属性
-
5.10 类方法
-
-
1. 标签
视图文件参考smarty文档
php文件以<?php
开始,不得使用其他标签风格
文件结尾空一行,省略?>
结尾标签
2. 编码
utf-8
3. 注释
3.1 单行注释
语句上边或者结尾空一格使用// 注释
,注意内容与定界符间加空格,eg.
// 上边注释
$a = 'aaa';
$result = $a . '+'; // 结尾注释
3.2 多行注释
多行注释以/**
开始,以*/
结束。eg.
/**
* 这里是多行注释
* 每行以*加空格开头
*/
3.3 文件注释
eg.
/**
* 简述
* 详细功能描述(可省略)
* @author 作者名称
* @email 邮箱地址
* @date 添加日期
*/
3.4 类注释
eg.
/**
* 简述
* 详细描述(可省略)
*/
3.5 方法注释
/**
* 简述
* @param 类型 变量名 备注
* @return 类型 备注
*/
3.6 属性注释
/**
* @var 类型 变量名 备注
*/
4. 命名规范
Pascal 所有单词首字母大写
Camel 除了首单词,所有单词首字母大写
遵循以下原则:
-
严禁使用汉语拼音缩写
-
除了众所周知的缩写,避免使用单词缩写
-
英文单词组合
-
避免使用汉语拼音
4.1 文件命名
4.1.1 类文件使用Pascal命名方法,所有单词首字母大写
User.php
OrderDetail.php
4.1.2 配置文件使用小写
config.php
database.php
4.2 函数、方法明明使用Camel命名方法,首字母小写,其他单词首字母大写
function sum () {
}
public function getName()
{
}
4.3 变量使用Camel 命名方法,首字母小写,其他单词首字母大写
除循环迭代变量,严禁使用单字母变量名
$name = 'ianzhi';
$orderDetail = new OrderDetail();
4.4 常量命名全部使用大写,使用下划线分隔多单词
const DATABASE_NAME = 'aaa';
5. 书写规范
5.1 文件
-
所有php文件使用Unix LF作为行结束符
-
所有php文件必须以一个空行结束
-
所有php文件必须省略
?>
结束标签
5.2 行
-
行长度没有硬限制,但一般不超过80个字符,多余80个字符应折为多行
-
一行不得多余一个语句
-
使用空行来改善可读性,区分代码块
5.3 缩进
所有缩进使用四个空格,不使用制表符缩进,所有开发人员在编辑器中强制修改tab为四个空格
5.4 控制结构
-
关键字后面必须有空格
-
左括号后不能有空格
-
右括号前不能有空格
-
右括号后有一个空格,之后放左花括号
-
代码主体必须有一次缩进
-
右花括号必须在主体的下一行,并与关键字缩进量相同
eg.
5.4.1 if
if ($param == 0) {
$name = 'ianzhi';
} else if ($param == 1) {
$name = 'zhangsan';
} else {
$name = 'lisi';
5.4.2 for
for ($i = 0; $i < 10; $i++) {
}
5.4.3 foreach
foreach ($array as $key=>$value) {
}
5.4.4 switch
switch ($expr) {
case 0:
echo 'case 0';
case 1:
echo 'case1';
default:
echo 'default';
}
5.4.5 while,do while
while ($expr) {
}
do {
} while ($expr);
5.4.6 try catch
try {
} catch (Exception $exception) {
}
5.5 运算符
每个运算符与它两边参加运算的值或者表达式中间必须有一个空格。
5.6 引号
除了必须使用双引号的情况,所有的引号都应该使用单引号。
5.7 关键词
关键词必须使用小写
true,false,null等php常量必须使用小写
5.8 类
-
类必须单独放一个源文件,并且文件名与类名相同
-
类的左花括号必须放到类名下一行
-
一个类的extends和implements必须与类名在同一行
-
如果implements多个接口,可以折行为多个一次性缩进的行,但是第一个interface必须放在类名下一行,并且每行都只放一个接口
class Alphabeta implements
IInterface1,
IInterface2
{
}
5.9 类属性
-
所有的类属性必须定义可见性
-
不能用var关键词来定义属性
-
不要用一个语句生命多个属性
5.10 类方法
-
类方法的左花括号必须放在方法名的下一行
-
所有的类方法必须生命可见性
-
参数列表中,逗号前不得有空格,逗号后必须有一个空格
-
static 必须放在可见性声明之后
参考:
腾讯海豹平台开发规范
php标准规范
原文地址:iian.xyz-php编码规范
独立博客: https://iian.xyz
github: https://github.com/ianzhi
微信公号: ianyhs