zoukankan      html  css  js  c++  java
  • PSR代码规范

    转自 https://www.kancloud.cn/thinkphp/php-fig-psr/3139

    PSR-1基本代码规范

      PHP代码文件必须以 <?php 或 <?= 标签开始;

      PHP代码文件必须以 不带BOM的 UTF-8 编码;

      PHP代码中应该只定义类、函数、常量等声明,或其他会产生 从属效应 的操作(如:生成文件输出以及修改.ini配置文件等),二者只能选其一;

      命名空间以及类必须符合 PSR 的自动加载规范:PSR-0 或 PSR-4 中的一个;

      类的命名必须遵循 StudlyCaps 大写开头的驼峰命名规范;

      类中的常量所有字母都必须大写,单词间用下划线分隔;

      方法名称必须符合 camelCase 式的小写开头驼峰命名规范。

    PSR-2代码风格规范

      代码必须遵循 PSR-1 中的编码规范 。

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

      每行的字符数应该软性保持在80个之内, 理论上一定不可多于120个, 但一定不能有硬性限制。

      每个 namespace 命名空间声明语句和 use 声明语句块后面,必须插入一个空白行。

      类的开始花括号({)必须写在函数声明后自成一行,结束花括号(})也必须写在函数主体后自成一行。

      方法的开始花括号({)必须写在函数声明后自成一行,结束花括号(})也必须写在函数主体后自成一行。

      类的属性和方法必须添加访问修饰符(private、protected 以及 public), abstract 以及 final必须声明在访问修饰符之前,而 static必须声明在访问修饰符之后。

      控制结构的关键字后必须要有一个空格符,而调用方法或函数时则一定不能有。

      控制结构的开始花括号({)必须写在声明的同一行,而结束花括号(})必须写在主体后自成一行。

      控制结构的开始左括号后和结束右括号前,都一定不能有空格符。

    PSR-3日志接口规范

        LoggerInterface 接口对外定义了八个方法,分别用来记录 RFC 5424 中定义的八个等级的日志:debug、 info、 notice、 warning、 error、 critical、 alert 以及     emergency 。

        第九个方法 —— log,其第一个参数为记录的等级。可使用一个预先定义的等级常量作为参数来调用此方法,必须与直接调用以上八个方法具有相同的效果。如果传入的等    级常量参数没有预先定义,则必须抛出 PsrLogInvalidArgumentException 类型的异常。在不确定的情况下,使用者不该使用未支持的等级常量来调用此方法。

        以上每个方法都接受一个字符串类型或者是有 __toString() 方法的对象作为记录信息参数,这样,实现者就能把它当成字符串来处理,否则实现者必须自己把它转换成字    串。
    PSR-4自动载入

      完整的类名必须要有一个顶级命名空间,被称为 “vendor namespace”;

      完整的类名可以有一个或多个子命名空间;

      完整的类名必须有一个最终的类名;

      完整的类名中任意一部分中的下滑线都是没有特殊含义的;

      完整的类名可以由任意大小写字母组成;

      所有类名都必须是大小写敏感的。

      当根据完整的类名载入相应的文件……

      完整的类名中,去掉最前面的命名空间分隔符,前面连续的一个或多个命名空间和子命名空间,作为“命名空间前缀”,其必须与至少一个“文件基目录”相对应;

      紧接命名空间前缀后的子命名空间必须与相应的”文件基目录“相匹配,其中的命名空间分隔符将作为目录分隔符。

      末尾的类名必须与对应的以 .php 为后缀的文件同名。

      自动加载器(autoloader)的实现一定不能抛出异常、一定不能触发任一级别的错误信息以及不应该有返回值。


      记录信息参数可以携带占位符,实现者可以根据上下文将其它替换成相应的值。

  • 相关阅读:
    什么是线程安全?
    概念
    Spring boot 异常 EnvironmentCapable
    JAVA 日志级别
    线程生命周期
    js计算两日期相差的天数、月数
    多线程模拟火车票卖票-实现Runnable接口
    多线程模拟火车站卖票-继承Thread类
    元素的层级 字体相关样式 图标字体
    定位 相对定位 偏移量 绝对定位 固定定位 粘滞定位 水平和垂直布局
  • 原文地址:https://www.cnblogs.com/myyuanyuan/p/6955509.html
Copyright © 2011-2022 走看看