小编给大家分享一下PHP编码开发规范是什么,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!
这几天看了一下阿里技术发布的一套Java开发规范《阿里巴巴Java开发手册》,里面写了阿里内部的Java开发规范标准,写的很好。这套Java统一规范标准将有助于提高行业编码规范化水平,帮助行业人员提高开发质量和效率,大大降低代码维护成本。
看完我去搜下了一些PHP的一些开发规范标准,其中了解到了PSR规范是PHP行业中常用的一套开发标准。感叹自己学得那么少,标准的规范这么晚才发现。
其实对于新手或者有几年经验的开发者来说,这些规范我们都要掌握的,很多时候我们做好这些规范,在协同开发中,能提高我们的开发质量和效率。
什么是PSR ?
PSR是PHP标准建议的简写,由PHP图组织制定的PHP规范,是PHP开发的实践标准。
PHP无花果目前已表决通过了6套标准,已经得到大部分PHP框架的支持和认可。
其中已经通过的有:
- <李> PSR-1基础编码规范李>
- <李类=" _mce_tagged_br "> PSR-2编码风格规范李>
- <李类=" _mce_tagged_br "> PSR-3日志接口规范李>
- <李类=" _mce_tagged_br "> PSR-4自动加载规范李>
- <李类=" _mce_tagged_br "> PSR-6缓存接口规范李>
- <李类=" _mce_tagged_br "> PSR-7 HTTP消息接口规范李>
*注:其中PSR-0已被弃用,PSR-5还在起草中,以后再补充
这里先介绍PSR-1基础编码规范
<强> 1,概览强>
PHP代码文件必须以& lt; ?php或& lt; ?=标签开始;
PHP代码文件必须以不带BOM的utf - 8编码;
PHP代码中应该只定义类,函数,常量等声明,或其他会产生副作用的操作(如:生成文件输出以及修改. ini配置文件等),二者只能选其一。
命名空间以及类必须符合PSR的自动加载规范:[PSR-4]()中的一个;
类的命名必须遵循StudlyCaps大写开头的驼峰命名规范。
类中的常量所有字母都必须大写,单词间用下划线分隔;
方法名称必须符合camelCase式的小写开头驼峰命名规范。
<强> 2。文件强>
<强> 2.1。PHP标签强>
PHP代码必须使用& lt; ?php ?比;长标签或& lt; ?=比;短输出标签;
一定不可使用其它自定义标签。
<强> 2.2。字符编码强>
PHP代码必须且只可使用不带BOM的utf - 8编码。(这点很重要)
<强> 2.3。副作用强>
一份PHP文件中应该要不就只定义新的声明,如类,函数或常量等不产生副作用的操作,要不就只书写会产生副作用的逻辑操作,但不该同时具有两者。
"副作用”(副作用)一词的意思是,仅仅通过包含文件,不直接声明类,函数和常量等,而执行的逻辑操作。
"副作用“包含却不仅限于:
- <李>生成输出李>
- <李类=" _mce_tagged_br ">直接的要求或包括李>
- <李类=" _mce_tagged_br ">连接外部服务李>
- <李类=" _mce_tagged_br ">修改ini配置李>
- <李类=" _mce_tagged_br ">抛出错误或异常李>
- <李类=" _mce_tagged_br ">修改全局或静态变量李>
- <李类=" _mce_tagged_br ">读或写文件等李>
以下是一个反例,一份包含“函数声明”以及产生”副作用”的代码:
& lt; PHP ?//案弊饔谩?修改ini配置 报错(& # 39;error_reporting # 39;, E_ALL);//案弊饔谩?引入文件 包括“file.php";//案弊饔谩?生成输出 回声“& lt; html> \ n";//声明函数 函数foo () {//函数主体部分 }
下面是一个范例,一份只包含声明不产生”副作用”的代码:
& lt; php ?//声明函数 函数foo () {//函数主体部分 }//条件声明* *不* *属于“副作用” 如果(!function_exists(& # 39;酒吧# 39;)){ 酒吧()函数 {//函数主体部分 } }
<强> 3。命名空间和类强>
命名空间以及类的命名必须遵循[PSR-4] ()。
根据规范,每个类都独立为一个文件,且命名空间至少有一个层次:顶级的组织名称(供应商名字)。
类的命名必须遵循StudlyCaps大写开头的驼峰命名规范。
PHP 5.3及以后版本的代码必须使用正式的命名空间。
例如:
& lt; PHP ?//PHP 5.3及以后版本的写法 名称空间供应商\模型; 类Foo { }PHP编码开发规范是什么