告别代码风格混乱!PHP PSR全规范梳理:编码标准、日志接口、自动加载落地教程

简介:还在为PHP项目代码风格不统一、类加载混乱头疼?本文详解PHP-FIG制定的PSR全系列规范,从基础PSR-1编码约定、PSR-4 Composer自动加载原理,到替代PSR-2的PSR-12现代代码风格,再到PSR-3日志接口、PSR-7 HTTP消息等进阶规范。搭配实战示例,帮助开发者快速掌握标准规则,提升代码可读性与跨框架互操作性,降低团队协作维护成本

PSR(PHP Standard Recommendations)是 PHP 社区制定的PHP 标准推荐规范

目的:统一 PHP 代码风格、接口规范、自动加载规则等,提升可读性和可维护性。

一、PSR-1:基础编码规范(必须掌握)

1、标签规范

  • 纯 PHP 代码文件,只使用 <?php ?> 或 <?= 短标签;
  • 纯 PHP 文件末尾必须省略闭合标签 ?>(防止输出多余空白字符)

2、命名规范

  • 类名:大驼峰式(StudlyCaps),如 UserController、OrderService。
  • 常量:全大写 + 下划线分隔,如 STATUS_SUCCESS、DB_HOST
  • 方法名:小驼峰式(camelCase),如 getSignParams()、saveOrder()

3、文件与命名空间:

  • 命名空间和类名必须遵循自动加载规范(PSR-4)
  • 一个 PHP 文件只定义一个类,不允许一个文件写多个类

二、PSR-2:代码风格规范(已废弃,替代为 PSR-12)

PSR-2 2019年后已经被 PSR-12 完全取代,现代开发直接用 PSR-12 即可

三、PSR-3:定义日志接口规范(通用日志标准)

8 个日志级别(必须记住)

// 日志级别从低到高
debug(调试详细信息)
info(普通日志)
notice(普通提示)
warning(警告)
error(运行时错误)
critical(严重错误)
alert(必须立即处理)
emergency(系统不可用)

四、PSR-4:自动加载规范(必须掌握:使用composer 必备)

PHP 开发中最重要的规范,Composer 自动加载的底层标准,现在所有的 PHP 框架(Laravel、ThinkPHP、Symfony)都基于此。

  1. 命名空间 对应 文件目录:命名空间的层级 = 文件夹的层级
  2. 类名 对应 文件名 :类名 = 文件名(大小写完全一致)
  3. 无需手动写 require/include 引入文件,Composer 自动加载

例如:composer.json会有这么一段配置

{
  "autoload": {
    "psr-4": {
      "App\\": "src/", // App命名空间 对应 src目录
    }
  }
}

五、PSR-12:扩展代码风格规范(必须掌握)

  1. 缩进:使用4 个空格,禁止用 Tab 键
  2. 行长度:每行不超过 120 字符,最好 80 字符以内
  3. 关键字大小写:PHP 关键字全小写(if、for、public、static)
  4. 类与方法: 类的 { 换行写,方法 { 换行写
  5. 方法参数、括号左右无多余空格
  6. 控制结构:if、for、foreach 等关键字后必须加一个空格
  7. 条件括号 () 内两侧无空格

六、其他知悉即可

  • PSR-6:缓存接口规范
  • PSR-7:HTTP 消息接口(Request、Response、UploadedFile 等)
  • PSR-11:容器依赖注入接口规范(Laravel/Symfony 容器标准)
  • PSR-14:事件分发器规范
  • PSR-15:中间件接口规范
  • PSR-17:HTTP 工厂接口(统一创建请求 / 响应对象)
  • PSR-18:HTTP 客户端接口(统一的 HTTP 请求客户端,如 Guzzle)

 

编程经验共享公众号二维码
更多内容关注公众号
Copyright © 2021 编程经验共享 赣ICP备2021010401号-1