0

0

php标准规范详解

小云云

小云云

发布时间:2018-03-19 14:14:42

|

3490人浏览过

|

来源于php中文网

原创

本文主要和大家分享php标准规范详解,希望能帮助到大家。

psr0:自动加载标准

已经被 psr4 替代,可以了解下

1. 强制:完全限定命名空间和类的格式:\\(\)*
2. 强制:每个命名空间必须有一个顶级命名空间 (Vendor Name)。
3. 每个命名空间中可以含有任意数量的子命名空间。
4. 当文件系统加载源文件时,命名空间之间的分隔符将被转换为 DIRECTORY_SEPARATOR。
5. 类名中的下划线 _ 都将被转换为 DIRECTORY_SEPARATOR。_ 没有什么特殊的意义。
6. 完全限定命名空间和类从文件系统加载源文件时将会加上 .php 后缀。
7. 完全限定命名空间中的字母大小写可以是任何组合。

实例

易企CMS1.8
易企CMS1.8

易企CMS:国内首款完全基于SEO友好性开发的营销型企业网站系统,让企业网络营销从此易如反掌。 本程序特征:100%开发源代码,免费开源;后台管理操作简单易行;模板div+css标准设计,符合w3c标准,兼容主流浏览器;开发语言和数据库:PHP+Mysql。 本程序亮点:从基础代码开发起完全符合SEOWHY理论的SEO规范,力图实现国内首款对SEO最友好的企业网站开源程序,为企业网络营销的巨大成功

下载
\Doctrine\Common\IsolatedClassLoader => /path/to/project/lib/vendor/Doctrine/Common/IsolatedClassLoader.php
\Symfony\Core\Request => /path/to/project/lib/vendor/Symfony/Core/Request.php
\Zend\Acl => /path/to/project/lib/vendor/Zend/Acl.php
\Zend\Mail\Message => /path/to/project/lib/vendor/Zend/Mail/Message.php

\namespace\package\Class_Name => /path/to/project/lib/vendor/namespace/package/Class/Name.php
\namespace\package_name\Class_Name => /path/to/project/lib/vendor/namespace/package_name/Class/Name.php

psr1:基本编程规范

强制:php 标签必须是 或者 = ?>2. 强制:文件必须以 不带BOM的 UTF-8 编码3. php 文件中的代码只能是定义类、函数、常量等声明,或者只能是一些副操作4. 命名空间和类必须满足 psr0 或者 psr45. 类名必须是 StudlyCaps 【大写开头的驼峰命名】规范6. 类中常量所有字母必须大写,下划线分隔7. 方法名称必须是 camelCase 驼峰命名规范。

解释

立即学习PHP免费学习笔记(深入)”;

副操作包含却不仅限于:生成输出、直接的 require 或 include、连接外部服务、
修改 ini 配置、抛出错误或异常、修改全局或静态变量、读或写文件等。\n";// declarationfunction foo(){
    // function body}

psr2 编程风格规范

是 psr1 的拓展

1. 必须遵循 psr12. 缩进必须使用 4 个空格符3. 每行的字符数应该软性保持在80个之内, 理论上一定不可多于120个, 但一定不能有硬性限制。4. 每命名空间声明语句和 use 声明语句块后面,必须插入一个空白行。所有 use 必须在 namespace 后声明。5. 方法和类的开始花括号必须写在其声明后另起一行。6. abstract 以及 final 必须在修饰符 private、protected 以及 public 之前,而 static 必须声明在访问修饰符之后。7. 控制结构的关键字后必须要有一个空格符,而调用方法或函数时则一定不能有。8. 控制结构的开始花括号必须写在声明的同一行。9. 控制结构的开始左括号后和结束右括号前,都一定不能有空格符。10. 所有PHP文件必须使用 Unix LF 作为行的结束符。
11. 所有PHP文件必须以一个空白行作为结束。12. 非空行后一定不能有多余的空格符。13. 每行一定不能存在多于一条语句。14. PHP所有 关键字必须全部小写。

实例

 $b) {            $foo->bar($arg1);
        } else {
            BazClass::bar($arg2, $arg3);
        }
    }    final public static function bar()
    {
        // method body
    }
}

psr4 自动加载

\(\)*\
注意:psr4 后不再叫完全限定命名空间,而是完全限定类名。1. 完全限定类名必须有一个顶级命名空间,被称为 "vendor namespace"2. 完全限定类名可以有有一个或多个子命名空间3. 完整的类名必须有一个最终的类名;4. 下划线都是没有特殊含义的5. 完整的类名可以由任意大小写字母组成;6. 所有类名都必须是大小写敏感的。7. 完整的类名中,去掉最前面的命名空间分隔符,前面连续的一个或多个命名空间和子命名空间,作为“命名空间前缀”,其必须与至少一个“文件基目录”相对应;8. 紧接命名空间前缀后的子命名空间必须与相应的”文件基目录“相匹配,其中的命名空间分隔符将作为目录分隔符。9. 末尾的类名必须与对应的以 .php 为后缀的文件同名。10. 自动加载器(autoloader)的实现一定不能抛出异常、一定不能触发任一级别的错误信息以及不应该有返回值。

实例

完整类名 命名空间前缀 文件基目录 文件路径
\Acme\Log\Writer\File_Writer Acme\Log\Writer ./acme-log-writer/lib/ ./acme-log-writer/lib/File_Writer.php
\Aura\Web\Response\Status Aura\Web /path/to/aura-web/src/ /path/to/aura-web/src/Response/Status.php
\Symfony\Core\Request Symfony\Core ./vendor/Symfony/Core/ ./vendor/Symfony/Core/Request.php
\Zend\Acl Zend /usr/includes/Zend/ /usr/includes/Zend/Acl.php

相关推荐:

PHP标准类(stdclass)用法示例

PHP标准库 SPL

php标准生成验证码程序

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

21

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

14

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

8

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

7

2026.01.22

PHP特殊符号教程合集
PHP特殊符号教程合集

本专题整合了PHP特殊符号相关处理方法,阅读专题下面的文章了解更多详细内容。

6

2026.01.22

PHP探针相关教程合集
PHP探针相关教程合集

本专题整合了PHP探针相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.22

菜鸟裹裹入口以及教程汇总
菜鸟裹裹入口以及教程汇总

本专题整合了菜鸟裹裹入口地址及教程分享,阅读专题下面的文章了解更多详细内容。

20

2026.01.22

Golang 性能分析与pprof调优实战
Golang 性能分析与pprof调优实战

本专题系统讲解 Golang 应用的性能分析与调优方法,重点覆盖 pprof 的使用方式,包括 CPU、内存、阻塞与 goroutine 分析,火焰图解读,常见性能瓶颈定位思路,以及在真实项目中进行针对性优化的实践技巧。通过案例讲解,帮助开发者掌握 用数据驱动的方式持续提升 Go 程序性能与稳定性。

9

2026.01.22

html编辑相关教程合集
html编辑相关教程合集

本专题整合了html编辑相关教程合集,阅读专题下面的文章了解更多详细内容。

106

2026.01.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SQL 教程
SQL 教程

共61课时 | 3.5万人学习

【李炎恢】ThinkPHP8.x 后端框架课程
【李炎恢】ThinkPHP8.x 后端框架课程

共50课时 | 4.5万人学习

FastAPI框架精讲课程
FastAPI框架精讲课程

共38课时 | 2.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号