php代码规范

来源:互联网 发布:儿童手机编程软件 编辑:程序博客网 时间:2024/06/01 16:44

PHP代码规范

一、文档说明

本文档适用于技术中心PHP开发人员,对代码约定俗成的一些习惯进行说明,旨在统一代码风格、降低代码维护成本。

二、文件格式

1. 文件编码

文件编码一般建议采用UTF-8无BOM

2. PHP文件

对于只含有 php 代码的文件,我们将在文件结尾处忽略掉 "?>" 。防止多余的空格或者其它字符影响到代码。

不允许使用短标签。

3. 代码缩进

(1)、代码缩进必须使用4个空格,不允许使用制表符。一方面保证代码的美观性,一方面保证多平台代码的可读性以及避免发生不可预见的问题。

(2)、类定义开始大括号建议和类命保持一致。

(3)IF分支开始大括号建议和if保持一致, IF语句必须有大括号,不建议省略大括号,以便提高代码可读性。

(4)、多个if语句建议空行。

(5)、较长IF判断建议写上开始、结束标记。

(6)SWITCH语句必须有default。

(7)、定义数组建议分行定义。

(8)、一行代码不建议过长,一行代码过长时建议考虑分行。

 

三、命名规范

1. 文件名命名规范

(1)、类文件名以.class.php为后缀,建议采用驼峰命名法,并且首字母大写 ( 例如:UserController.class.php,UserModel.class.php等  )。

(2)、配置文件建议以.config.php为后缀。配置项建议都使用大写。

(3)、方法文件不做要求。

2. 类名命名规范

(1)、类名要求和文件名保持一致( 包括大小写一致 )。

(2)、建议采用驼峰命名法,并且首字母大写。

3. 变量命名规范

(1)、变量命名要求简单明了,英文命名,严禁拼音以及无意义命名 ( 例如:$data2 , $a等 )。

(2)、长变量建议使用 _ 隔开。( 例如: $user_money用户金额, $user_status用户状态 )

(3)Model 对象建议使用 类名 + _ + model 命名。 ( 例如:$user_model等 )。

(4)Controller 对象建议使用 类名 + model 命名。 ( 例如:$user_controller等 )。

4. 常量命名

(1)、常量定义由 大写字母 以及 ‘_’组成。(例如:APP_PATH,LOG_PATH等 )。

5. 属性命名

(1)、属性的命名使用驼峰法,并且首字母小写或者使用下划线“_”,例如 tableName、_instance,通常下划线开头的属性属于私有属性

6. 方法命名规范

(1)、方法的命名使用驼峰法,并且首字母小写或者使用下划线“_”,例如 getUserName,_parseType,通常下划线开头的方法属于私有方法。

(2)、方法参数多个参数之间建议加上空格。

(3)、所有函数必须有访问控制符( public,protected,private),必须存在控制符。 【 一般情况下,public表示全局都可以调用,protected方法只有本类、子类以及父类访问,private表示私有方法,只要本来可以调用】。

(4)static 表示静态方法,值能通过 类命 :: 方法名 调用,其中静态方法中值能调用静态方法以及静态属性。【建议接口之间通讯可以用静态类处理,调用方便,而且方便后期维护】

7. 函数命名规范

(1)、函数的命名使用小写字母和下划线的方式,例如 get_client_ip

(2)、函数参数多个参数之间建议加上空格。

 

 

四、注释规范

1.类的注释

1) 主要功能说明

2) 作者

3) 时间

 

2.方法的注释

 

3.代码的注释

1) 代码内的注释建议使用 “//” 和代码层级保持一致。

2) 后期需要完善或者是可能出现问题的代码要 @todo 标识出来,方便后期排查代码

3) 注释必须独占一行,在代码上注释,建议不要把注释卸载代码结束之后。

 

4.函数的注释

1) 函数的主要用途

2) 函数的参数说明

3) 函数的返回值说明

 

 

五、其他说明

1、尽可能使用单引号 '而不是双引号''

2、php文件中绝不能出现html语句,html文件中尽可能避免出现php语句。

3、一个php文件只能包含一个类定义编码,以类名称作为文件名称。

4、使用完毕后的数组变量、对象变量、查询集合必须马上使用unset()、free_result()释放资源。

5、把已经注释掉的代码删除,或者注明这些已经注释掉的代码仍然保留在源码中的特殊原因。

6、详细的注释把主要功能注释出来,减少其他人阅读代码的用时,也方便以后排查问题。

7、当重复写一些代码时候,可以考虑封装为方法或者是类

8、使用变量或者遍历数组时候,使用isset函数或是empty函数可以检查变量值是否为空。

9、程序中与其他服务端或者接口有交互时候,建议用注释表明每个字段的含义,方便排查问题。

10、必要时程序加入一些日志记录,方便排查问题。
11、SVN或git提交需要加注释。 (SVN或git提交需要加注释,SVN或gitt提交需要加注释,SVN或git提交需要加注释,说三遍)

原创粉丝点击