php psr 编码规范(PSR-[0-4])

PHP中PSR-[0-4]规范 PHP中PSR-0,PSR-1,PSR-2,PSR-3,PSR-4规范的用法以及使用。 阅读详情
PSR 是 PHP Standard Recommendation 的简写,即PHP推荐标准。


目前通过的规范有 PSR-0(Autoloading Standard)、PSR-1(Basic Coding Standard)、PSR-2(Coding Style Guide)、PSR-3(Logger Interface)、PSR-4(Improved Autoloading)。


PSR 不是PHP官方标准,而是从如Zend、Symfony2等知名PHP项目中提炼出来的一系列标准,目前有越来越多的社区项目加入并遵循该标准。


PHP FIG(Framework Interoperability Group)框架可互用性小组是制定PSR开发规范的组织。他们的目的在于以最低程度的限制制定一个统一的标准,让各个框架遵循统一的编码规范。


 


====================PSR-0(自动加载规范)=======================


PSR-0(Autoloading Standard)类自动加载规范,该规范现已废弃(Deprecated),它将由PSR-4替代。


1.一个完全合格的命名空间和类名必须遵循以下结构 "\VendorName\Namespace\ClassName"


2.每个命名空间必须有顶级的命名空间 "VendorName"


3.每个命名空间可以有任意多个子命名空间


4.每个命名空间在被文件系统加载时必须被转换为操作系统路径分隔符 (DIRECTORY_SEPARATOR)


5.每个"_"字符在"类名"中被转换为DIRECTORY_SEPARATOR。而在 PSR-4 中使用下划线没有任何特殊含义


6.符合命名标准的命名空间和类名必须以".php"结尾来加载文件


7.命名空间和类名可以由大小写字母组成,但必须对大小写敏感以保证多系统兼容性


 


====================PSR-1(基本代码规范)=======================


PSR-1(Basic Coding Standard)基本代码规范,用以确保共享的PHP代码间具有较高程度的技术互通性。


1.PHP代码源文件必须以 <?php 或 <?= 标签开始


2.PHP代码源文件必须使用不带 BOM 的 UTF-8 编码


3.一个源文件建议只用作定义类、函数、常量等声明,或者其他产生从属效应的操作(如:输出信息,修改配置文件等)


4.命名空间以及类必须符合 PSR 的自动加载规范:PSR-0 或 PSR-4


5.类的命名必须遵循 StudlyCaps 大写开头的驼峰式命名规范


6.类中的常量所有字母都必须大写,单词间用下划线分隔


7.方法名必须符合 camelCase 式的小写开头驼峰式命名规范


 


* BOM(byte order mark)是 Unicode 标准的一部分,通常用于标记纯文本字节序(byte order),使得文本处理程序能够识别读入的文件使用的 Unicode 编码(UTF-8、UTF-16、UTF-32)。


* 从属效应是指仅仅通过包含文件,不直接声明类、函数和常量而执行的逻辑操作。一份PHP源文件应该要么就只包含不产生从属效应的定义操作,要么就包含只会产生从属效应的逻辑操作,切勿同时包含两者。


 


====================PSR-2(代码风格规范)=======================


PSR-2(Coding Style Guide)代码风格规范,通过制定一系列规范化PHP代码的规则,以减少因代作者码风格不同而造成的阅读不便。


1.代码必须遵循 PSR-1 中的编码规范


2.代码必须使用4个空格来进行缩进,而非制表符(TAB)


3.建议每行代码字符数保持在80个以内,理论上不可多于120个,但不做硬性限制


4.每个 namespace 命名空间语句和 use 声明语句块后面必须插入一个空白行


5.类的左花括号 "{" 必须写在声明后自成一行,右花括号 "}" 也必须在类主体下自成一行


6.方法的左花括号 "{" 必须放在声明后自成一行,右花括号 "}" 也必须于主体下自成一行


7.类的属性和方法必须添加访问修饰符(private、protected、public),abstract 以及 final 必须声明在访问修饰符之前,而 static 必须声明在访问修饰符之后(例:final public static)


8.在控制结构关键字的后面必须有一个空格,而调用方法或函数时一定不能有(控制结构:if-else、switch-case、try-catch、while、foreach ...)


9.控制结构的左花括号 "{" 必须跟其处于同一行,右花括号 "}" 必须在控制结构主体之后自成一行


10.控制结构的开始左括号之后,和结束右括号之前都不可以有空格


 


====================PSR-3(日志接口规范)=======================


PSR-3(Logger Interface)日志接口规范,主要目的是为了让日志类库通过接收一个 LoggerInterface 对象来记录日志信息。


1.LoggerInterface 接口对外定义了八个方法,分别用来记录 RFC 5424 中定义的八个等级的日志:debug、info、notice、warning、error、critical、alert、emergency


2.第九个方法 log(),第一个参数为记录等级。可使用一个预先定义的等级常量作为参数来调用此方法,必须与直接调用以上八个方法具有相同的效果。如果传入的等级常量没有预先定义,则必须抛出 psr\Log\InvalidArgumentException 类型的异常。不推荐使用自定义的日志等级,除非你非常确定当前类库对其有所支持。


 


====================PSR-4(自动加载新规)=======================


PSR-4(Improved Autoloading)本规范是关于自动载入对应类的相关规范,是 PSR-0 自动加载规范的补充。


1.此处的“类”是一个泛称,它包含类、接口、traits 以及其他类似的结构


2.完全限定类名需要遵循以下结构:\<命名空间>(\<子命名空间>)*\<类名>


  * 完全限定类名必须要有一个顶级命名空间,被称为 "vendor namespace";


  * 完全限定类名可以有一个或多个子命名空间;


  * 完全限定类名必须有一个终止类名;


  * 完全限定类名中任意一部分中的下划线都没有特殊含义;


  * 完全限定类名可以由任意大小写字母组成;


  * 完全限定类名必须以大小写敏感的方式引用;


3.当根据完整的类名载入相应的文件时:


  * 完全限定类名中,连续的一个或几个子命名空间构成的命名空间前缀(不包括顶级命名空间的分隔符),至少对应着至少一个基础目录;


  * 紧接命名空间前缀后的子命名空间必须与相应的”文件基目录“相匹配,其中的命名空间分隔符将作为目录分隔符;


  * 终止类名对应一个以 .php 结尾的文件,文件名必须和终止类名大小写匹配;


4.自动加载器(autoloader)的实现不能抛出异常,不可引发任一级别错误,也不应该有返回值
PHP 编码规范 --- PSR规范0-4整理 1. 前言 源码文件必须采用UTF-8编码,且不得有BOM头,某些历史遗留的GBK模块除外。 编码风格没有太多的好坏之分, 最重要的是风格保持一致,编码规范有助于规范我们编码的风格,使代码具有更好的可读性。 每项规范前面的[强制]代表该规范需要强制执行,[建议]代表推荐执行但不强制。 注: 文中所有的变量名前面为了方便没有加”$”, 示意即可。本篇规范是参照百度内部PHP的编码规范制定。 2. 排版 2.1. [强制][PHP002] 程序块要采用缩进风格编写,缩进的空格数建议为4个,单模块内 阅读详情

相关推荐

AI Olympics:面向真实决策的不完全信息博弈评测框架

在人工智能落地实践中,传统基准测试(如MMLU、GSM8K)擅长评估知识调用与静态推理能力,却难以衡量模型在动态、模糊、高代价的真实场景中的策略决策水平。AI Olympics正是为弥补这一断层而生——它以扑克、狼人杀等社会性博弈为载体,系统考察模型在不完全信息下的对手建模、欺骗检测、多步序贯推理与代价敏感执行等核心能力。其技术价值在于将‘黑箱决策’转化为可追踪、可归因、可压力测试的动态思维图谱(DTG),支撑金融风控、智能客服、交通调度等强交互业务场景的能力诊断与持续优化。

weixin_30983965的博客 298

PHP PSR 代码规范基本介绍

PSR 是 PHP Standard Recommendation 的简写,即PHP推荐标准。 目前通过的规范有 PSR-0(Autoloading Standard)、PSR-1(Basic Coding Standard)、PSR-2(Coding Style Guide)、PSR-3(Logger Interface)、PSR-4(Improved Autoloading)。 PSR...

weixin_30544657的博客 248

Basilisk vs. STK:开源航天仿真工具在Windows上的实战体验与生态对比

本文对比了开源航天仿真工具Basilisk与商业软件STK在Windows平台上的实战体验与生态差异。从技术架构、安装配置、使用成本、功能覆盖、社区生态到适用场景,全面分析了二者的优劣势,为航天工程师和研究人员提供选型参考。Basilisk在性能和扩展性上表现突出,而STK在可视化与专业模块上更具优势。

weixin_30632089的博客 589

PSR标准到底是干什么的?使用场景是什么?底层原理是什么?

尽管实际的数据传输可能涉及多种协议和技术,但所有符合PSR-7标准的对象都必须实现相同的接口,这样就可以保证它们可以在不同的上下文中互换使用。PSR标准的核心在于定义一套通用的接口和规则,而不是具体的实现细节。这大大简化了类的加载过程,并减少了手动引入文件的需求。总之,PSR标准促进了PHP生态系统内的统一和互操作性,使得开发者能够专注于业务逻辑而非基础设施的搭建,同时也提高了代码的质量和维护性。:采用PSR-4标准进行命名空间和文件结构的设计,可以利用Composer的自动加载功能,简化项目的依赖管理。

长风破浪会有时的博客 1157

手把手教你用Isograph Reliability Workbench 14.0绘制可靠性方框图(RBD)

本文详细介绍了如何使用Isograph Reliability Workbench 14.0绘制可靠性方框图(RBD),从软件安装、界面设置到基础项目创建和高级功能应用,手把手指导工程师完成系统可靠性分析。通过实际案例演示,帮助用户掌握RBD建模技巧,提升系统可靠性评估效率。

weixin_26765287的博客 633

Ansys Lumerical实战:5步搞定Mach-Zehnder调制器多物理场仿真(附眼图分析技巧)

本文详细介绍了使用Ansys Lumerical进行行波马赫-曾德尔调制器多物理场仿真的完整流程。通过CHARGE、MODE和INTERCONNECT三大模块的协同工作,从电学参数提取、光学射频特性分析到系统级眼图评估,分步解析了高效仿真与性能优化的核心技巧,为硅光调制器设计提供了实战指南。

weixin_29056781的博客 545

PHP的PSR推荐规范,PSR-1,PSR-2,PSR-3,PSR-4详解

From: http://www.shuchengxian.com/article/128.html PHP的PSR推荐规范,PSR-1,PSR-2,PSR-3,PSR-4详解 PSR是php standards recommendation(php推荐标准)的简称。PHP-FIG制定了每个推荐的规范用于解决大多数php框架经常会遇到的某个具体问题。php框架无需频繁解决相同的问题,他们可以遵...

JoeBlackZQQ的专栏 1475

一文读懂5G网络整体架构(接入网+承载网+核心网)

接入网重构分级(分工更细、效率更高)、承载网三段化升级(管道更宽、更智能)、核心网服务化云化(管理更灵活、成本更低)最终实现“成本最优、资源灵活、场景适配”,才能支撑自动驾驶、工业互联网、智慧城市、VR/AR等各种新场景,真正走进我们的生活。

鲸落寰宇 430

PHP-PSR编码规范

1.5 PSR编码规范 1.5.1 概述 PSR 是 PHP Standard Recommendations 的简写,由 PHP FIG 组织制定的 PHP 规范,是 PHP 开发的实践标准。 目前已表决通过了 6 套标准,已经得到大部分 PHP 框架的支持和认可。 网址:http://psr.phphub.org/ 1.5.2 PSR-1 基础编码规范 1、PHP代码文件 必须 以...

逍遥云恋 557

STM32入门教程:自动门控制

通过这个简单的示例,我们展示了如何使用STM32微控制器来实现一个简单的自动门控制系统。如果有物体靠近门口,我们会改变doorState的值,并使用controlServoMotor函数来控制舵机电机的转动。具体的引脚连接可以根据您的具体硬件来定,例如将红外传感器的输出引脚连接到GPIOA_PIN0引脚。同样,具体的引脚连接可以根据您的具体硬件来定,例如将舵机的控制引脚连接到GPIOA_PIN1引脚。首先,我们需要包含必要的库文件和引用。然后,我们需要定义一些函数来处理红外传感器的输入和舵机电机的输出。

m0_75244442的博客 578

PX4实战(四):PX4 uorb模块详解

本节主要讲解PX4中的uorb消息,主要包括uorb的基本概念使用、PX4内重要的uorb消息、如何自定义uorb消息以及使用uorb消息的注意点等,其中讲解重要uorb消息是为了对PX4内重要数据结构有初步的了解,有助于后期算法理解。uORB(micro Object Request Broker)是PX4中用于模块间通信的轻量级发布-订阅(Publish/Subscribe)机制。模块之间可以通过uORB传递消息,无需直接调用对方函数;提高系统模块化与解耦性;

PX4-SLAM-PNC 1932

PSR编码规范

使用phpstorm进行编码时,编码完成,使用格式化代码快捷键ctrll+alt+L,自动格式化代码,遵循PSR4规范1.类名使用大驼峰 2.属性名,方法名使用小驼峰 3.常量全部字母大写 4.类属性方法必须添加访问修饰符,abstract、final位于访问修饰符之前,static放于访问修饰符之后 5.控制结构开始花括号必须写在声明的同一行,结束花括号必须在主体后自成一行 6.类的开始花括号必须写在类声明后自成一行,结束花括号必须在类主体后自成一行 7.方法的开始花括号必须写在方法声明后自成一行,结束花

u010602865的博客 565

《Linux GPU 驱动核心机制:面向图形与 AI 计算的 DRM 内存管理与任务调度》 目录

本文以缓冲区对象(BO)生命周期为主线,系统解析 Linux DRM 子系统中 GPU 驱动的核心机制。涵盖 GEM 与 TTM 内存管理、dma-buf/dma-fence 共享同步、GPU 调度与地址空间管理,结合 amdgpu、Xe 等驱动代码,深入剖析其设计动机与实现逻辑。旨在填补中文领域对 GPU 内核机制系统性讲解的空白,为图形与 AI 计算场景下的内存泄漏、同步死锁等疑难问题提供可追溯的分析路径。

图形/计算GPU的驱动与虚拟化技术分享园地 3739

php psr4 编码规范,PSR规范0-4整理

PSR规范psr规范引言: PSR 是 PHP Standard Recommendations 的简写,由 PHP FIG 组织制定的 PHP 规范,是 PHP 开发的实践标准。这些规范的目的是:通过框架作者或者框架的代表之间讨论,以最低程度的限制,制定一个协作标准,各个框架遵循统一的编码规范,避免各家自行发展的风格阻碍了 PHP 的发展,解决这个程序设计师由来已久的困扰。截止到笔者文章psr在...

weixin_30444625的博客 557

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

PHP编码规范,PHP中PSR-[0-4]规范

PHP编码规范,PHP中PSR-[0-4]规范 https://www.zybuluo.com/phper/note/65033

一只菜鸡的专栏 252

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

php psr4 编码规范,PHP规范PSR0和PSR4的理解

一、PSR0简介下文描述了若要使用一个通用的自动加载器(autoloader),你所需要遵守的规范:一个完全标准的命名空间(namespace)和类(class)的结构是这样的:()*每个命名空间(namespace)都必须有一个顶级的空间名(namespace)("组织名(Vendor Name)")。每个命名空间(namespace)中可以根据需要使用任意数量的子命名空间(sub-namesp...

weixin_35733586的博客 251

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

php psr 编码规范_PHP规范PSR0和PSR4的理解

一、PSR0简介下文描述了若要使用一个通用的自动加载器(autoloader),你所需要遵守的规范:一个完全标准的命名空间(namespace)和类(class)的结构是这样的:\\(\)*每个命名空间(namespace)都必须有一个顶级的空间名(namespace)("组织名(Vendor Name)")。每个命名空间(namespace)中可以根据需要使用任意数量的子命名空间(su...

weixin_34621309的博客 304

php下拉选择框0-59,php psr 编码规范(PSR-[0-4])

PSR 是 PHP Standard Recommendation 的简写,即PHP推荐标准。目前通过的规范有 PSR-0(Autoloading Standard)、PSR-1(Basic Coding Standard)、PSR-2(Coding Style Guide)、PSR-3(Logger Interface)、PSR-4(Improved Autoloading)。PSR 不是PHP...

weixin_39950552的博客 125

php psr0 psr4理解

PSR(Proposing a Standards Recommendation)PHP编码规范 共同点: 1.都是基于域名空间的自动加载(不确定理解是否有误...) 不同点: psr0:程序会根据命名空间自动加载对应的类。另外命名空间的下划线没有特殊含义,而类名的下划线是有特殊含义的。 psr4:对psr0进行补充。自动生成的PSR4配置文件名称为autoload...

qq_34739614的博客 385

PSR规范学习笔记

PSR已经经历了5次变革,如今PSR4就是最新的标准,但是还是有必要了解下5个版本的内容的,于是去php-fig网站看了下英文原版; 大概看了遍,发现这规范很多的必须很多时候只是建议,但是PHP解析器在解析PHP代码时,有时如果不满足规范,就不会通过或者报错。因此写代码时建议尽量以PSR标准来编写,毕竟一个规范的出台,有其重要的现实意义,同时最大的好处是能避免不必要的异常出现; 当然...

aomao064363的博客 121

PHP中PSR-[0-4]代码规范

PHP-FIG 在说啥是PSR-[0-4]规范的之前,我觉得我们有必要说下它的发明者和规范者:PHP-FIG,它的网站是:www.php-fig.org。就是这个联盟组织发明和创造了PSR-[0-4]规范,膜拜吧,屌丝们! FIG 是 Framework Interoperability Group(框架可互用性小组)的缩写,由几位开源框架的开发者成立于 2009 年,从那开始也选取...

weixin_30437481的博客 87

PHP基础随笔,PHP编码标准PSR

PHP的编码规范(PHP Standards Recommendation)已经出了PSR-0,PSR-1,PSR-2,PSR-3,PSR-4 5个标准了。总结一下重要的几点: 1、PHP文件必须是无BOM的UTF-8编码 2、类名必须是驼峰式 PHP5.3以上,必须使用正式的命名空间 <?php namespace Busicess\Model Class User { } PHP5.3以下,应该使用伪命名空间 Class Business_Model_User { } 3、常量必须是大写,字母

k_code_rookie的博客 260

php PSR[0-4] 小总结

PSR-0:            1:一个完全合格的namespace和class必须符合这样的结构:        “\()*”         2:每个namespace必须有一个顶层的namespace("Vendor Name"提供者名字)         3:每个namespace可以有多个子namespace         4:当从文件系统中加载时,每个namespac

纳尼Baby 214
上一篇: 微信公众号接口相关操作
下一篇: phpqrcode生成二维码的3种类型步骤
samcPHP
博客等级 码龄9年 2粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值