PSR标准规范

本文详细介绍了PHP的PSR代码规范,包括编码、命名、缩进等基本规范,日志接口规范,以及自动加载规范。强调了驼峰命名、大写常量、4个空格缩进、日志等级、类名结构和文件加载规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PSR标准规范

基本代码规范

  • PHP代码文件 必须 以 不带 BOM 的 UTF-8 编码;
  • 类的命名 必须 遵循 StudlyCaps 大写开头的驼峰命名规范;
  • 类中的常量所有字母都 必须 大写,单词间用下划线分隔;
  • 方法名称 必须 符合 camelCase 式的小写开头驼峰命名规范

    编码风格指南

  • 代码 必须 使用4个空格符而不是「Tab 键」进行缩进。
  • 每个 namespace 命名空间声明语句和 use 声明语句块后面,必须 插入一个空白行。
  • 类的开始花括号({) 必须 写在函数声明后自成一行,结束花括号(})也 必须 写在函数主体后自成一行。
  • 方法的开始花括号({) 必须 写在函数声明后自成一行,结束花括号(})也 必须 写在函数主体后自成一行。

    日志接口规范

  • LoggerInterface 接口对外定义了八个方法,分别用来记录 RFC 5424 中定义的八个等级的日志:debug、 info、 notice、 warning、 error、 critical、 alert 以及 emergency 。
  • 第九个方法 —— log,其第一个参数为记录的等级。可使用一个预先定义的等级常量作为参数来调用此方法,必须 与直接调用以上八个方法具有相同的效果。如果传入的等级常量参数没有预先定义,则 必须 抛出 Psr\Log\InvalidArgumentException 类型的异常。在不确定的情况下,使用者 不该 使用未支持的等级常量来调用此方法。

    自动加载规范

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

参考:https://psr.phphub.org/

 
 
 
 
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值