php 标准规范
发布日期:2025-05-03 01:40:19
浏览次数:7
分类:精选文章
本文共 1933 字,大约阅读时间需要 6 分钟。
PHP 标准推荐规范
PSR-0: 自动加载标准
PSR-0 已被 PSR-4 替代,以下是 PSR-4 的基本规范:
命名空间格式:
命名空间必须以顶级命名空间(Vendor Name)开始,后面可以有多个子命名空间。格式为:\vendor\namespace\subnamespace\Class_Name
- 命名空间和类名之间使用
DIRECTORY_SEPARATOR(默认为\)。 - 类名中的下划线
_只是作为命名字符,并无特殊意义。
命名空间结构:
- 每个命名空间必须有一个顶级命名空间。
- 子命名空间可以任意数量。
- 文件系统中的命名空间分隔符会被转换为
DIRECTORY_SEPARATOR。
类名规范:
- 类名必须与对应的
.php文件名称匹配,大小写敏感。 - 命名空间前缀与文件路径必须一致。
自动加载器要求:
- 自动加载器不能抛出异常、错误或返回值。
- 必须确保类、文件等能够被正确加载。
PSR-4: 自动加载规范
PSR-4 定义了完全限定类名的格式:
类名格式:
\namespace\subnamespace\Class_Name
- 必须包含顶级命名空间。
- 子命名空间可以任意数量。
- 类名必须是最终名称。
命名空间结构要求:
- 命名空间前缀必须对应文件的基目录。
- 子命名空间必须与相应的文件子目录匹配。
- 命名空间分隔符作为目录分隔符。
类名要求:
- 类名的大小写敏感。
- 必须与对应的
.php文件名称匹配。
自动加载器要求:
- 必须支持 PSR-4 标准。
- 必须确保无异常、错误或返回值。
PSR-4 示例
| 完整类名 | 命名空间前缀 | 文件基目录 | 文件路径 |
|---|---|---|---|
| \Acme\Log\Writer\File_Writer | Acme\Log\Writer | ./acme-log-writer/lib/ | ./acme-log-writer/lib/File_Writer.php |
PSR-1: 基本编程规范
文件标签:
使用<?php 或 <?= 作为标签。文件编码:
文件必须以 UTF-8 无 BOM 编码保存。文件内容:
- 只能包含定义、声明或副操作。
- 命名空间和类必须遵守 PSR-0 或 PSR-4。
命名规范:
- 类名:
StudlyCase(首字母大写)。 - 常量:所有字母大写,下划线分隔。
- 方法名:
camelCase(首字母小写)。
PSR-2: 编程风格规范
PSR-2 已被 PSR-12 取代。
PSR-12: 编程风格规范
声明语句:
- 使用
use导入语句。 - 使用
declare(strict_types=1)确保严格类型。
代码格式:
- 行必须以
LF结束。 - 行不能超过 80 个字符(可软限制 120 个字符)。
- 不允许尾随空格。
- 缩进使用 4 个空格,无制表符。
代码结构:
- 每行只能有一个语句。
- 代码块之间用空行分隔。
- 函数、方法参数后必须有空格。
命名空间结构:
- 深度不得超过两个层级。
- 使用
use语句导入复合命名空间时,避免过深层级。
示例
declare(strict_types=1);namespace Vendor\Package;use Vendor\Package\{ ClassA as A, ClassB, ClassC as C};use Vendor\Package\SomeNamespace\ClassD as D;use function Vendor\Package\{ functionA, functionB, functionC};use const Vendor\Package\{ ConstantA, ConstantB, ConstantC};class Foo extends Bar implements FooInterface{ public function sampleFunction(int $a, int $b = null): array { if ($a === $b) { bar(); } elseif ($a --> $b) { $foo->bar($arg1); } else { BazClass::bar($arg2, $arg3); } } final public static function bar() { // 方法体 }} 以上规范是编写高质量 PHP 代码的重要指南,建议在开发过程中遵循这些标准。
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2026年05月21日 15时35分16秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
php时间戳知识点,php 时间戳函数总结与示例
2023-03-01
php更新数据库失败,php – 无法更新MySQL数据库
2023-03-01
php机器人聊天对话框,基于AIML的PHP聊天机器人
2023-03-01
PHP查找数组中最大值与最小值
2023-03-01
php查最大值,在PHP数组中查找最大值
2023-03-01
php根据年月日计算年龄
2023-03-01
RabbitMQ - 单机部署(超详细)
2023-03-01
php检查注册,PHP检查注册的电子邮件地址是一个’school.edu’地址
2023-03-01
php模拟发送GET和POST请求
2023-03-01
RabbitMQ - 以 MQ 为例,手写一个 RPC 框架 demo
2023-03-01
php模板引擎smarty
2023-03-01
php正则表达式模式
2023-03-01
php正则表达式的特殊字符含义
2023-03-01
PHP正则表达式获取武汉市的实时pm2.5数据并邮件发送phpmailer
2023-03-01
RabbitMQ + JMeter组合,优化你的中间件处理方式!
2023-03-01
PHP水仙花问题解法之一
2023-03-01
php没有解析是怎么回事,linux下php文件没有被剖析怎么办?_后端开发
2023-03-01
php注册页面实现注册后跳转页面
2023-03-01
PHP消息队列的实现方式与详解,值得一看
2023-03-01