欢迎光临
我们一直在努力

laravel之PSR规范

什么是PSR规范,从网上找了一个段
FIG组织在制定跟PHP相关规范,简称PSR。目前已有4个代码规范。

PSR-1基本代码规范

1) PHP代码文件必须以 <?php 或 <?= 标签开始;
2) PHP代码必须且只可使用不带BOM的UTF-8编码
3)一份PHP文件中应该要不就只定义新的声明,如类、函数或常量等不产生从属效应的操作,要不就只有会产生从属效应的逻辑操作,但不该同时具有两者
“从属效应”(side effects)一词的意思是,仅仅通过包含文件,不直接声明类、 函数和常量等,而执行的逻辑操作
4) 命名空间以及类必须符合 PSR 的自动加载规范:PSR-4,根据规范,每个类都独立为一个文件,且命名空间至少有一个层次:顶级的组织名称(vendor name)。
5) 类的命名必须 遵循 StudlyCaps 大写开头的驼峰命名规范。
6) 类中的常量所有字母都必须大写,单词间用下划线分隔
7) 方法名称必须符合 camelCase() 式的小写开头驼峰命名规范

PSR-2代码风格规范

1) 代码必须使用4个空格符而不是 tab键 进行缩进.

2) 每行的字符数应该软性保持在80个之内, 理论上一定不可多于120个, 但一定不能有硬性限制
3) 每个 namespace 命名空间声明语句和 use 声明语句块后面,必须插入一个空白行
4) 类的开始花括号({)必须写在其声明后自成一行,结束花括号(})也必须写在其主体后自成一行
5) 方法的开始花括号({)必须写在函数声明后自成一行,结束花括号(})也必须写在函数主体后自成一行
6) 类的属性和方法必须添加访问修饰符(private、protected 以及 public), abstract 以及 final 必须声明在访问修饰符之前,而 static 必须声明在访问修饰符之后
7) 控制结构(如if)的关键字后必须要有一个空格符,而调用方法或函数时则一定不能有
8) 控制结构(如if)的开始花括号({)必须写在声明的同一行,而结束花括号(})必须写在主体后自成一行
9) 控制结构的开始左括号后和结束右括号前,都一定不能有空格符
10) 闭包声明时,关键词 function 后以及关键词 use 的前后都必须要有一个空格.开始花括号必须写在声明的同一行,结束花括号必须紧跟主体结束的下一行.参数列表和变量列表的左括号后以及右括号前,必须不能有空格.参数和变量列表中,逗号前必须不能有空格,而逗号后必须要有空格.闭包中有默认值的参数必须放到列表的后面

PSR-3日志接口规范

https://github.com/PizzaLiu/PHP-FIG/blob/master/PSR-3-logger-interface-cn.md

PSR-4 Autoloader自动加载规范

1) 此处的“类”泛指所有的class类、接口、traits可复用代码块以及其它类似结构。

2)一个完整的类名需具有以下结构:
\<命名空间>(\<子命名空间>)*\<类名>
完整的类名必须要有一个顶级命名空间,被称为 “vendor namespace”;
完整的类名可以有一个或多个子命名空间;
完整的类名必须有一个最终的类名;
完整的类名中任意一部分中的下划线都是没有特殊含义的;
完整的类名可以由任意大小写字母组成;
所有类名都必须是大小写敏感的。
3) 当根据完整的类名载入相应的文件……
完整的类名中,去掉最前面的命名空间分隔符,前面连续的一个或多个命名空间和子命名空间,作为“命名空间前缀”,其必须与至少一个“文件基目录”相对应;
紧接命名空间前缀后的子命名空间必须与相应的”文件基目录“相匹配,其中的命名空间分隔符将作为目录分隔符。
末尾的类名必须与对应的以 .php 为后缀的文件同名。
自动加载器(autoloader)的实现一定不能抛出异常、一定不能触发任一级别的错误信息以及不应该有返回值

PS.在composer.json文件中可以直接添加autoload字段实现命名空间到目录的映射。如默认app的映射

版权归原作者所有,如有侵权请告知。达维营-前端网 » laravel之PSR规范
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址