PHP编码开发规范是什么

  介绍

小编给大家分享一下PHP编码开发规范是什么,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!

这几天看了一下阿里技术发布的一套Java开发规范《阿里巴巴Java开发手册》,里面写了阿里内部的Java开发规范标准,写的很好。这套Java统一规范标准将有助于提高行业编码规范化水平,帮助行业人员提高开发质量和效率,大大降低代码维护成本。

看完我去搜下了一些PHP的一些开发规范标准,其中了解到了PSR规范是PHP行业中常用的一套开发标准。感叹自己学得那么少,标准的规范这么晚才发现。

其实对于新手或者有几年经验的开发者来说,这些规范我们都要掌握的,很多时候我们做好这些规范,在协同开发中,能提高我们的开发质量和效率。

什么是PSR ?

PSR是PHP标准建议的简写,由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编码开发规范是什么