网络语言系列&php系列【仅供参考】:PHP中psr2和psr4的区别

PSR-2与PSR-4核心区别解析




PHP中psr2和psr4的区别

在PHP中,PSR(PHP Standard Recommendations)是由PHP-FIG(PHP Framework Interop Group)制定的编码标准和规范,旨在提高PHP代码的可读性和可维护性。PSR-2和PSR-4是两个不同的标准,它们分别关注代码风格和自动加载。

PSR-2

PSR-2 是关于代码风格的规范,它详细描述了PHP代码应该如何格式化,包括缩进、空格、换行、命名约定等。PSR-2 是 PSR-1 的扩展,它包含PSR-1中的所有规则,并添加了一些额外的规则。

PSR-2的一些主要规定包括:

1. 缩进:

使用4个空格进行缩进,不使用制表符(Tab)。

2. 行宽:

每行代码不应超过80个字符。

3. 关键字:

PHP的所有关键字(如 if, else, for, foreach, while, switch, case, default, function, class, trait, interface, extends, implements, public, protected, private, const, abstract, final, static, var, null, true, false, echo, print, require, include, require_once, include_once, global, unset, isset, empty, continue, goto, return, try, catch, throw, finally, instanceof, insteadof, trait_exists, class_exists, method_exists)必须使用小写字母。

4. 命名约定:
  1. 类名必须使用大驼峰命名法(PascalCase)。

  2. 常量名必须使用全大写字母和下划线分隔(UPPER_CASE_WITH_UNDERSCORES)。

  3. 方法名和变量名必须使用小驼峰命名法(camelCase)。

5. 括号:

函数调用的括号周围不应有空格,控制结构(如 if, for)的括号内应有一个空格。

PSR-4

PSR-4 是关于自动加载的规范,它定义了从完全限定类名(FQCN)到文件路径的映射方式。PSR-4 允许自动加载器根据命名空间和类名找到相应的文件路径。

PSR-4的一些主要规定包括:

1. 命名空间前缀:

一个命名空间前缀必须指向一个基准目录。例如,命名空间前缀 Vendor\Package 可能指向 /path/to/vendor/package/src/。

2. 目录结构:

命名空间中的每个命名空间分隔符(\)转换为目录分隔符(通常是 /)。

3. 类名:

命名空间中的类名必须转换为以 .php 结尾的文件名。类名的每个命名空间分隔符(\)转换为目录分隔符,并且首字母大写的类名部分转换为文件路径的一部分。

4. 文件路径:

最终的文件路径是通过将命名空间前缀的基准目录、转换后的目录结构和转换后的文件名拼接而成的。

例如,假设你有以下命名空间和类名:

namespace Vendor\Package\SubNamespace;  
  
class MyClass  
{  
    // ...  
}

并且你的命名空间前缀 Vendor\Package 指向 /path/to/vendor/package/src/,那么PSR-4将自动加载器指向 /path/to/vendor/package/src/SubNamespace/MyClass.php。

总结

  • PSR-2:关注PHP代码的风格和格式化,包括缩进、空格、命名约定等。

  • PSR-4:关注自动加载,定义了从完全限定类名到文件路径的映射方式。

这两个标准分别解决了代码可读性和代码组织的问题,是现代PHP开发中推荐遵循的规范。







ac-er8888

PHP中psr2和psr4的区别

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坦笑&&life

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值