PSR规范

425 阅读3分钟

PSR 规范即 PHP Standard Recommendations(PHP 标准推荐),是由 PHP FIG(PHP Framework Interop Group,框架可互用性小组)组织制定的 PHP 规范,是 PHP 开发的实践标准123。其目的是通过框架作者或者框架的代表之间讨论,以最低程度的限制,制定一个协作标准,让各个框架遵循统一的编码规范,避免各家自行发展的风格阻碍 PHP 的发展1。以下是一些常见的 PSR 规范2:

  1. PSR-1 基本编码规范

    • 文件编码:PHP 文件应使用 UTF-8 编码,且没有 BOM。
    • 命名规范:类名应遵循 StudlyCaps(首字母大写的驼峰命名法)规则,方法名应遵循 camelCase(小写字母开头的驼峰命名法);常量名应全大写,使用下划线分隔。
    • 文件结构:PHP 代码源文件必须以;一个源文件建议只用作定义类、函数、常量等声明,或者其他产生从属效应的操作,二者只能选其一。
  2. PSR-2 代码风格规范

    • 缩进:使用 4 个空格缩进,而不是制表符。
    • 行长度:每行代码的最大长度不超过 120 个字符,推荐每行代码保持在 80 个字符以内。
    • 花括号位置:类和方法的花括号应在同一行;控制结构的左花括号 “{” 必须跟其处于同一行,右花括号 “}” 必须在控制结构主体之后自成一行。
    • 空格使用:在控制结构关键字的后面必须有一个空格,而调用方法或函数时一定不能有;类方法参数每个逗号后面必须要有一个空格,而逗号前面一定不可有空格;控制结构的开始左括号之后,和结束右括号之前都不可以有空格。
  3. PSR-3 日志接口规范:定义了一个标准的日志接口,规定了日志处理类应如何实现基本的日志记录功能,它允许不同的日志库和日志后端互操作。接口定义了 emergency、alert、critical、error、warning、notice、info、debug 等日志记录方法,以及一个通用的 log 方法来根据指定级别记录日志。

  4. PSR-4 自动加载规范:是 PHP 的自动加载标准,规定了如何根据命名空间和类名自动加载 PHP 类。类文件的路径应与命名空间结构相匹配,类名必须与文件名完全一致。可通过 Composer 配置自动加载,使得类的加载变得更加规范,避免了手动引入文件的麻烦。

  5. PSR-6 缓存接口规范:定义了一个通用的缓存接口,用于在应用程序中处理缓存数据,规范了缓存的基本操作,如获取、设置、删除缓存数据等,使得不同的缓存实现可以更方便地在项目中互换使用。

  6. PSR-7 HTTP 消息接口规范:规定了 HTTP 消息的接口,包括请求和响应的表示方式,统一了 RequestInterface、ResponseInterface、URIInterface 等接口,规范了 HTTP 请求、响应和 URI 对象的处理,使得 HTTP 消息的处理和传输变得更加规范,支持框架和中间件之间的互操作。

  7. PSR-11 容器接口规范:定义了一个标准的依赖注入容器接口,用于在应用程序中管理对象的依赖关系。容器接口规定了 get 和 has 等方法,通过依赖注入容器,可以更方便地管理对象的创建和依赖关系,提高代码的可维护性和可测试性。

  8. PSR-12 扩展的编码风格规范:是 PSR-2 的扩展,提供了更详细的编码风格指导,包括类声明、命名空间、注释、空白行等方面的标准,旨在使 PHP 代码的风格更加一致,便于开发者理解和协作。