1 缩进
tab键,4个空格
2 类定义
独占一行,类名PascalCase
class FooBarBaz{
// ...
}
3 控制语句大括号
while ($i <= 10) { //同一行
// ..
}
4 方法大括号位置
functionbar($baz) { //同一行
// ...
}
5 条件语句空格
括号内无空格,括号外有空格,方法声明参数相同
if ($baz) {
// ...
} elseif ($bar) {
// ...
} else {
// ...
}
6 常量定义
CAPS_SNAKE_CASE
const BAR_BAZ = 0;define('BAR_BAZ', 0);
7 函数名定义
camelCase
function getUserName() {
// ...
}
8 静态方法声明
static在可见性之后
class Foo
{
public static function bar($baz) {
// ...
}
}
9 最大行宽
80字符
10 控制语句分行
if (condition1
& condition 2
& condition 3
...
) {
//...
}
11 代码单元正交性
底层封装
上层复用
12 语义化
类名、常量、变量、方法名等,尽量做到语义化命名,从名字基本可以知道用途
13 函数职责
一个函数尽量只做一件事情,这样能保证多个函数之间的正交性,也利于后期的复用
14 接口文档
apidoc还是需要的,对于团队协作很有效,但要保证apidoc能够及时更新
15 新建单个php文件
删除最后的?>符号
<?php
//......
16 编码一致性
utf-8,团队所有人保证编码的一致性
更多规范,请参考PHP PSR规范文档 https://psr.phphub.org/