php PSR[0-4] 小总结

来源:互联网 发布:炒黄金 知乎 编辑:程序博客网 时间:2024/06/16 13:04
 PSR-0: 
 
        1:一个完全合格的namespace和class必须符合这样的结构:
       “\< Vendor Name>(< Namespace>)*< Class Name>”
        2:每个namespace必须有一个顶层的namespace("Vendor Name"提供者名字)
        3:每个namespace可以有多个子namespace
        4:当从文件系统中加载时,每个namespace的
    分隔符(/)要转换成 DIRECTORY_SEPARATOR(操作系统路径分隔符)
        5:在类名中,每个下划线(_)符号要转换成DIRECTORY_SEPARATOR(操作系统路径分隔符)。
   在namespace中,下划线(_)符号是没有(特殊)意义的。
        6:当从文件系统中载入时,合格的namespace和class一定是以 .php 结尾的
        7:verdor name,namespaces,class名可以由大小写字母组合而成(大小写敏感的)
PSR-1:
        1:PHP源文件必须只使用 <?php 和 <?= 这两种标签。
        2:源文件中php代码的编码格式必须是不带字节顺序标记(BOM)的UTF-8。
        3:一个源文件建议只用来做声明(类(class),函数(function),常量(constant)等)
   或者只用来做一些引起副作用的操作(例如:输出信息,修改.ini配置等),
   但不建议同时做这两件事。
        4:命名空间(namespace)和类(class) 必须遵守PSR-0标准。
        5:类名(class name) 必须使用骆驼式(StudlyCaps)写法
   (注:驼峰式(cameCase)的一种变种,后文将直接用StudlyCaps表示)。
        6:类(class)中的常量必须只由大写字母和下划线(_)组成。
        7:方法名(method name) 必须使用驼峰式(cameCase)写法。
PSR-2:
  1. 源文件
        文件末尾必须空一行。
         必须使用Unix LF(换行)作为行结束符。
        纯PHP代码源文件的关闭标签?>必须省略。
 2. 缩进
     必须使用4个空格来缩进,或者在编辑器里手动设置Tab为4个空格也可以
 3. 行
     一行推荐的是最多写80个字符
 4. 关键字和 True/False/Null
     php的关键字,必须小写,boolean值:true,false,null 也必须小写
 5. 命名空间(Namespace)和导入(Use)声明  
         命名空间(namespace)的声明后面必须有一行空行。
         所有的导入(use)声明必须放在命名空间(namespace)声明的下面。
        一句声明中,必须只有一个导入(use)关键字。
         在导入(use)声明代码块后面必须有一行空行。
  6. 类(class),属性(property)和方法(method)
     1 . 继承(extends) 和实现(implement) 必须和 class name 写在一行,
         且花括号要换行写。
     2 . 属性(property)必须声明不能省略 public,protected,private。
     3 . 方法(method) ,必须 声明其可见性, public,protected,private,不能省略。
                 并且,花括号{  必须换行写。如果有多个参数,第一个参数后紧接,再加个空格,
                 且函数name和( 之间必须要有个空格:function_name ($par, $par2, $pa3),
                 如果参数有默认值,也要用左右空格分开。
     4 . 当用到抽象(abstract)和终结(final)来做类声明时,它们必须放在可见性声明
    (public 还是protected还是private)的前面。而当用到静态(static)来做类
       声明时,则必须放在可见性声明的后面。
 7. 控制结构
    if ($expr1) { //左右空格
        // if body
   } elseif ($expr2) { //elesif 连着写
        // elseif body
   } else {
     // else body;
   }
  
   switch ($expr) { //左右空格
      case 0:
          echo 'First case, with a break'; //对其
          break;  //换行写break ,也对其。
      case 1:
          echo 'Second case, which falls through';
          // no break
      case 2:
      case 3:
      case 4:
          echo 'Third case, return instead of break';
          return;
      default:
          echo 'Default case';
          break;
  }
  
 while ($expr) { //左右空格
       // structure body
  }
 do {
     // structure body;  //左右空格
 } while ($expr);
   
        for ($i = 0; $i < 10; $i++) { //注意几个参数之间的空格
      // for body
 }
 foreach ($iterable as $key => $value) { //还是空格问题
      // foreach body
 }
 try {
      // try body
 } catch (FirstExceptionType $e) { //同样也是注意空格。
      // catch body
 } catch (OtherExceptionType $e) {
      // catch body
 }
PSR-3:
 1:来规范日志接口(Logger Interface)的
PSR-4:
 1:类名必须要和对应的文件名要一模一样,大小写也要一模一样。
原创粉丝点击