PSR 规范官网
PSR-2 编码风格规范
PSR-1 基础编码规范
CodeIgniter 框架的编码规范
类和命名空间
每个类都独立为一个文件,且命名空间至少有一个层次:顶级的组织名称(vendor name)。
类的命名必须遵循大写开头的驼峰命名规范。
<?php
namespace VendorModel;
class Foo
{
...
}
类中的属性、方法、常量
常量
类的常量中,所有字母都 必须 大写,词间以下划线分隔。
<?php
namespace VendorModel;
class Foo
{
const ENVIRONMENT = 'production';
const MY_PI = 3.14;
}
属性
PSR 规范中,对属性的编码规范没有强制要求,但一般使用小写字母开头的驼峰规则。
<?php
namespace VendorModel
class Foo
{
private $price;
private $userName;
}
方法
跟属性名一样,使用小写字母开头的驼峰规则。
<?php
namespace VendorModel;
class Foo
{
public function getPrice($id)
{
...
}
}
代码
代码须使用4个空格符而不是「Tab 键」进行缩进。
所有 关键字 必须 全部小写。常量 true 、false 和 null 也 必须 全部小写。
每行字符数尽量保持在 80 个之内,最好不多于 120 个。
每个 namespace 命名空间声明语句和 use 声明语句块后面,必须 插入一个空白行。
类和方法的开始花括号({
) 必须 写在函数声明后自成一行,结束花括号(}
)也 必须 写在函数主体后自成一行。
类的属性和方法 必须 添加访问修饰符(private、protected 以及 public),abstract 以及 final 必须 声明在访问修饰符之前,而 static 必须 声明在访问修饰符之后。
控制结构的关键字后 必须 要有一个空格符,而调用方法或函数时则 一定不可 有。
控制结构的开始花括号({) 必须 写在声明的同一行,而结束花括号(}) 必须 写在主体后自成一行。
参数列表 可以 分列成多行,这样,包括第一个参数在内的每个参数都 必须 单独成行。
控制结构的开始左括号后和结束右括号前,都 一定不可 有空格符。
<?php
namespace VendorPackage;
use FooInterface;
use BarClass as Bar;
use OtherVendorOtherPackageBazClass;
class Foo extends Bar implements FooInterface
{
public function sampleFunction($a, $b = null)
{
if ($a === $b) {
bar();
} elseif ($a > $b) {
$foo->bar($arg1);
} else {
BazClass::bar($arg2, $arg3);
}
}
final public static function bar()
{
// 方法的内容
}
public function aVeryLongMethodName(
ClassTypeHint $arg1,
&$arg2,
array $arg3 = []
) {
// 方法的内容
}
}