PHP代码编写规范
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
QC 质量管理体系文件
代码编写规范
受控状态:■受控□非受控
发布日期:2006年02月20日
实施日期:2006年02月24日
1. 引言
1.1. 目的
制定本规范是为了能达到以下目的:
●提高程序员工作效率和代码的利用性
●程序员可以了解任何代码,弄清程序的状况
●新人可以很快的适应环境
●防止新接触php的人出于节省时间的需要,自创一套风格并养成终生的习惯
●防止新接触php的人一次次的犯同样的错误
●在一致的环境下,人们可以减少犯错的机会
1.2. 适用范围
适用于本公司的所有开发人员,包括数据库、网页及应用程序开发人员,及有关的程序测试人员。
1.3. 引用标准
GB/T 8566-1995 信息技术软件生存期过程
GB/T 8567-1988 计算机软件产品开发文件编写指南
1.4. 术语
GB/T 11457-1995中所使用的术语适用于本规范。
2. 代码编写规则
2.1. 注释
(1)编写代码期间注释要求占程序总量15%以上。
(2)每个模块顶部必须说明模块名称、功能描述、作者等。
(3)每个过程、函数、方法等开头部分必须说明功能、参数、返回值、原数据和目标数据数据结构等等。
(4)变量定义的行末应当对变量给出注释。
(5)程序在实现关键算法的地方应当给出注释
2.2. 变量、函数、过程、控件等命名规则
(1)变量命名采用[作用范围][数据类型][自定义名称]规则定义,要求看到变量名就能直观的看出其范围和数据类型。
(2)函数、过程、方法、事件等命名应尽量做到观其名知其义。
(3)控件的命名采用[控件类型][自定义名]规则定义,要求通过名字能直观看出控件类型。
(4)自定义命名空间规则,要求能顾名思义
2.3. 源代码规则
风格约定:采用缩进的格式保存程序的层次结构。要求能直观的看出循环、判断等层次结构。
2.4. 用户界面规范
(1)用户界面布局和结构应当合理。
(2)颜色搭配方面应当咨询美术专业人员。
(3)界面中必须有产品标识,如果在用户许可情况下可加入公司标识。
2.5. 合理性原则
(1)提示说明应当简短且避免产生歧义。
(2)提示或警告信息应当具有向导性,能准确告诉用户错误原因及恢复方法。提示和警告对话框应当使用标准规范。
(3)快捷键的定义必须符合用户操作习惯
(4)程序需要长时间处理或等待时,应当显示进度条并提示用户等待。
(5)一些敏感操作,如删除等操作在执行前必须提示用户确认。
3. 命名规则
一般原则:命名要与其自然想适合,根据名字能推导出其含义,一般人的推想也能在意料之中。3.1. 目录和文件的命名
原则:通过名称就能理解目录或文件的意义。
规则:
(1)目录命名使用英文小写字母,长度不超过20个字符;
(2)文件命名用小写的英文字母、数字和下划线的组合;
(3)文件名称使用“性质_描述”的规则,描述可以有多个单词,用”_”隔开,性质一般是该页面得概要。如register_form.php;
(4)凡是类文件使用“模块名_controller.php”的形式,如admin_controller.php。
3.2. 类(class)命名
原则:通过类名就能想起这个类是什么。
规则:
(1)词的首字母大写,其它字母一概小写;
(2)多个词组成的混合名,使用大写字母作为词的分隔,其它字母小写,用以真正传送信息;
(3)不要使用下划线“_”;
(4)缩写词不要全部使用大写字母。如使用GetHtmlStatistic,而不用GetHTMLStatistic;
(5)派生类的命名与父类无关,只与自身有关。
3.3. 函数和方法命名
原则:通常每个函数和方法都是执行一个动作,所以其命名要清楚地说明
它们是做什么的。
规则:
(1)采用“动作_动作对象”或者简单的就直接使用“动作”的形式.
(2)例子形式1:get_table_name()
形式2:add()
3.4. 类属性命名
规则:
(1)所有字母都使用小写;
(2)使用“_”作为每个词的分界;
(3)例如:$associations
$many_to_many_sql
3.5. 方法中参数命名
规则:
采用和类属性命名相同的命名规则;
3.6. 变量命名
规则:
(1)所有字母都使用小写;
(2)使用“_”作为每个词的分界;
(3)如$error,$time_of_error;
(4)临时变量的取名应加上前缀tmp,如tmp_user_ame;
(5)对象变量的取名应加上前缀obj_作为前缀,如:obj_user;
(6)数组变量的取名应加上前缀arr,如arr_book_name;
(7)数组下标的变量类型可以是整型和字符串型两种;
1.若为整形,数组下标不要用双引号包含;
2.若为字符串型,必须用双引号包含。
3.7. 其它
(1)用变量和函数返回引用时,引用必须带‘r’前缀
(2)全局变量应该带前缀“g”
(3)定义命名/全局常量时, 全局常量所有字母大写,用“_”分隔每个单词,如:define (“A_GLOBAL_CONSTANT” , ”hello world”)
(4)静态变量应该带前缀“s”,如:static $sStatus = 0;