PHP的PSR2规范 和PHP_CodeSniffer 的介绍
PHP_CodeSniffer 的应用;PHP_CodeSniffer是PEAR中的一个用PHP5写的用来检查嗅探PHP代码是否有违反一组预先设置好的编码标准的一个包,它能分析PHP程序,JAVASCRIP和CSS文件并且检查出哪些是与定义好的代码风格相违背的。
它是确保你的代码简洁一致的必不可少的开发工具,甚至还可以帮助程序员减少一些语义错误。
它必须是在linux环境下运行,安装和使用网上有很多教程。;PHP的PSR2规范;FIG组织在制定跟PHP相关规范,简称PSR。目前已有4个代码规范,为了减少不同开发者在浏览代码时减少认知的差异。 为此列举一组如何格式化PHP代码的共用规则。
各个成员项目的共性组成了本文的样式规则。当不同的开发者在不同的项目中合作时,将会在这些不同的项目中使用一个共同的标准。 因此,本指南的好处不在于规则本身,而在于共用这些规则。
RFC 2119中的必须(MUST),不可(MUST NOT),建议(SHOULD)???不建议(SHOULD NOT),可以/可能(MAY)等关键词将在本节用来做一些解释性的描述。;1、代码必须遵守?PSR-1。
2、代码必须使用4个空格来进行缩进,而不是用制表符(?tab)。
3、一行代码的长度不建议有硬限制;软限制必须为120个字符,建议每行代码80个字符或者更少。
4、在命名空间(namespace)的声明下面必须有一行空行,并且在导入(use)的声明下面也必须有一行空行。
5、类(class)的左大括号必须放到其声明下面自成一行,右大括号则必须放到类主体下面自成一行。
6、方法(method)的左大括号必须放到其声明下面自成一行,右大括号则必须放到方法主体的下一行。
7、所有的属性(property)和方法(method)?必须有可见性声明;抽象(abstract)和终结(final)声明必须在可见性声明之前;而静态(static)声明必须在可见性声明之后。
译注:属性:private 、protected 以及 public这几个封装属性、函式用的文字。
8、在控制结构( control structure)关键字的后面必须有一个空格;而方法(method)和函数(function)的关键字的后面不可有空格。
9、控制结构的左大括号必须跟其放在同一行,右大括号必须放在该控制结构代码主体的下一行。
10、控制结构的左括号之后不可有空格,右括号之前也不可有空格。
;这个示例中简单展示了上文中提到的一些规则:
;2.1 基础代码规范
代码必须遵守?PSR-1?中的所有规则。
2.2 源文件
所有的PHP源文件必须使用Unix LF(换行)作为行结束符。
所有PHP源文件必须以一个空行结束。
纯PHP代码源文件的关闭标签??必须省略。
2.3. 行
行长度不可有硬限制。
行长度的软限制必须是120个字符;对于软限制,代码风格检查器必须警告但不可报错。
一行代码的长度不建议超过80个字符;较长的行建议拆分成多个不超过80个字符的子行。
在非空行后面不可有空格。
空行可以用来增强可读性和区分相关代码块。
一行不可多于一个语句。;2.4. 缩进
代码必须使用4个空格,且不可使用制表符来作为缩进。
注意:代码中只使用空格,且不和制表符混合使用,将会对避免代码差异,补丁,历史和注解中的一些问题有帮助。空格的使用还可以使通过调整细微的缩进来改进行间对齐变得更加的简单。
2.5. 关键字和 True/False/Null
PHP关键字(keywords)必须使用小写字母。
PHP常量true,?false和null?必须使用小写字母。
;命名空间(namespace)的声明后面必须有一行空行。
所有的导入(use)声明必须放在命名空间(namespace)声明的下面。
一句声明中,必须只有一个导入(use)关键字。
在导入(use)声明代码块后面必须有一行空行。
示例:
;4.1.?扩展(extend)和实现(implement)
一个类的扩展(extend)和实现(implement)关键词必须和类名(class name)在同一行。
类(class)的左大括号必须放在下面自成一行;右大括号必须放在类(class)主体的后面自成一行。
;实现(implement)列表可以被拆分为多个缩进了一次的子行。如果要拆成多个子行,列表的第一项必须要放在下一行,并且每行必须只有一个接口(interface)。;所有的属性(property)都必须声明其可见性。
变量(var)关键字不可用来声明一个属性(property)。
一条语句不可声明多个属性(property)。
属性名(property name)?不推荐用单个下划线作为前缀来表明其保护(protected)或私有(private
您可能关注的文档
- NIPS TIPS 2013.1.6.ppt
- NICE900培训胶片_1.0.pptx
- NMR 知识回顾.ppt
- New第八章 计算机分子模拟应用实例.ppt
- NJB-600-1A型内燃机动螺栓扳手使用说明书.doc
- NJD433A柴油机调速器开始起作用时转速的调整方法.pptx
- NMR考试复习题.doc
- nice3000调试流程.ppt
- No.1-1确定原料甲醛的输送方法.pptx
- No.01-硬件电路系统设计基础-201307.ppt
- 安徽省华师联盟2025-2026学年高三上学期1月质量检测生物试卷+答案.doc
- 安徽省华师联盟2025-2026学年高三上学期1月质量检测语文试卷+答案.doc
- 四川省绵阳南山中学实验学校2025-2026学年高三上学期1月月考数学含答案.doc
- 2026届辽宁省大连市高三上学期双基考试物理试卷+答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测化学含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测生物含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测英语含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测政治含答案.doc
- 黑龙江省龙江教育联盟2026年1月高三上学期期末考试化学含答案.doc
- 黑龙江省龙江教育联盟2026年1月高三上学期期末考试生物含答案.doc
原创力文档

文档评论(0)