本文目录导读:

PSR 标准没有专门针对“注释”的强制性规范,但 PSR-1 和 PSR-2(以及 PSR-12 修订版)对注释有一些建议性指导。
情况如下:
没有专门的 PSR 注释标准
PHP-FIG(PHP 标准组)发布的标准中,并没有一个叫 PSR-XX: Docblock 标准 的文件,他们的关注点主要在代码风格(缩进、括号位置)、自动加载、接口规范等。
现有 PSR 中的相关建议
虽然不强制,但 PSR 规范中提到了注释的要求,必须遵守:
-
PSR-1(基础编码标准):
- 明确要求: PSR-1 明确规定,文件必须使用
<?php长标签,并且文件必须只使用 UTF-8 编码(无 BOM),这通常是对整个文件(包括注释)的要求,如果注释中有 BOM 或特殊字符,会导致报错。
- 明确要求: PSR-1 明确规定,文件必须使用
-
PSR-2(编码风格指南)与 PSR-12(扩展编码风格):
- 关于注释的段落: PSR-2/12 提到,注释和 DocBlock 应遵循相关工具(如 phpDocumentor)的格式(这算是一种隐性的指引)。
- 实际硬性要求(代码层面): 注释主要影响代码行的长度限制,PSR-2/12 规定:
- 代码行(包括注释行)建议不超过 120 个字符。
- 硬性限制是 必须不超过 80 个字符(除非是导入的类名或常量)。
- 也就是说,注释行不能超过 80 个字符,否则视为不符合规范。
社区实际遵循的“事实标准”(非 PSR,但推荐)
既然 PSR 没写,PHP 社区实际上强依赖 PHPDoc(基于 phpDocumentor 的标签语法)作为事实标准,这是 IDE(如 PhpStorm、VSCode)识别类型提示、生成文档的基础。
- 类、方法、属性:使用 块注释。
- 常用标签:
@param、@return、@throws、@var等。 - 类型强制:这些标签中的类型提示(如
array、string、ClassName)通常会配合 IDE 的静态分析,虽然这不属于 PSR,但属于现代 PHP 开发的必要条件。
总结与建议
如果你问“注释规范是不是必须遵循 PSR”,答案是:
- 遵守 PSR 的关键在于格式:行宽限制、编码格式、标签写法是必须的。
- 内容描述是关键:PSR 不关心你写什么文字,只关心格式友好,因此推荐使用 PHPDoc 格式来写,这符合 PSR-12 中“应遵循相关文档工具规范”的精神,也能让 IDE 正常识别。
一个符合 PSR-12 规范的注释范例:
<?php
declare(strict_types=1);
namespace App\Service;
/**
* 处理用户注册逻辑的示例类。
*
* 该类负责验证用户输入并调用仓库层保存数据。
*
* @package App\Service
*/
final class UserRegisterService
{
/**
* 注册新用户。
*
* @param string $name 用户名(最大长度 50 字符)。
* @param string $email 邮箱地址,必须唯一。
* @param string $password 明文密码(将在内部进行哈希处理)。
*
* @return int 注册成功后的用户 ID。
*
* @throws \InvalidArgumentException 当邮箱格式不正确时抛出。
*/
public function register(string $name, string $email, string $password): int
{
// 业务逻辑代码
// 注意这行注释不能超过 80 个字符(虽然推荐控制在 120 以内),若超出需换行。
return 1;
}
}
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播