PSR-1 基础编码规范
1、类的命名必须遵循大写开头的驼峰命名规范(StudyCaps)
2、方法命名必须遵循小写开头的驼峰命名规范(camelCase)
3、类中的常量所有字母必须大写,单词间用下划线分割(const PLATFORM_WECHAT = 9)
4、类中的属性名可遵循:大写开头驼峰、小写开头驼峰、下划线分割模式;无论使用那种方式,应该在一定范围内保持统一
5、命名空间及类必须符合psr-4自动加载规范
PSR-2 编码风格规范
文件
1、所有PHP文件必须以一个空行作为结束
2、纯PHP代码文件必须省略最后的结束标签 "?>"
行
1、每行不该多余80个字符,多余80个字符应该折成多行;行的长度不该有硬性限制,软性限制应必须限制在120个字符以内
2、非空行后一定不可有多余的空格符
3、每行不能存在多条语句
关键字
PHP所有关键字必须小写,常量 true、false、null 也必须全部小写
namespace及use声明
namespace声明后必须有一个空行
所有use声明必须放在namespace声明之后
use声明后必须有一个空行
例:
<?php
namespace wby\test;
use wby\Service\test;
use log;
class newOrder
{
}
方法
方法名称后不能有空格
开始花括号和结束花括号都必须独占一行
方法参数左括号后面和右括号前面不能有空格
方法参数中逗号后面要有一个空格
有默认值的参数,必须放到参数列表的末尾
参数列表可以分成多行,这样每个参数必须单独成一行,而且结束括号和方法开始的花括号必须写在同一行,中间用一个空格分隔,如下所示:
<?php
namespace Vendor\Package;
class ClassName
{
public function aVeryLongMethodName(
ClassTypeHint $arg1,
&$arg2,
array $arg3 = []
) {
// 方法的内容
}
}
abstract、final 和 static
需添加 abstract \ final 声明时,必须写在访问修饰符前,而static 必须写在其后,如
abstract public static function();
final public static function test()
{
}
控制结构
应该使用关键字 elseif 代替 else if, 以使得所有关键字都像是单独的一个词
switch case 语句中,如果存在非空的case直穿语句,主体里必须有类似 “//no break” 的注释
psr-4 自动加载规范
1、完整的类名需具备的结构
完整的类名必须有一个顶级命名空间,被成为“vendor namespace”
完整的类名可以有一个或多个子命名空间
完整的类名必须有一个最终的类名
完整类名中任一部分的下划线都是没有特殊含义的
完整类名可以由任意大小写字母组成
所有类名必须是大小写敏感的
2、当根据完整的类名载入相应的文件
完整的类名中,去掉最前面的命名空间分隔符,前面连续的一个或多个命名空间和子命名空间,作为「命名空间前缀」,其必须与至少一个「文件基目录」相对应;
紧接命名空间前缀后的子命名空间必须与相应的「文件基目录」相匹配,其中的命名空间分隔符将作为目录分隔符。
末尾的类名必须与对应的以.php为后缀的文件同名。
自动加载器(autoloader)的实现一定不可抛出异常、一定不可触发任一级别的错误信息以及不应该有返回值。
网友评论