PHP代码编写规范_第1页
PHP代码编写规范_第2页
PHP代码编写规范_第3页
PHP代码编写规范_第4页
PHP代码编写规范_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 重庆名爵科技有限公司 PHP代码编写规范编写:技术部日期:2008-2-22 重庆名爵科技有限公司 目录一、文件结构1二、文件名11文件夹命名12文件命名1三、注释11块注释12单行注释23尾端注释24行末注释25文档注释3四、声明3五、语句31简单的语句32复合语句43返回语句44If与else语句45For语句56While语句57Do while语句58Switch语句59Trycatch语句6六、空白71空行72空格7七、命名规范81数据库82类83函数104变量115Css11八、编程惯例111常量112赋值113圆括号124大括号125返回值136三目运算符?:13·

2、1 · 重庆名爵科技有限公司 一、文件夹结构CMS |_codes代码文件夹 | |_admin后台功能文件夹 | | |_class后台类文件夹 | | |_common后台通用功能文件夹 | | |_css后台css文件夹 | | |_images后台界面图片文件夹 | | |_js后台js文件夹 | | |_upload后台上传文件保存文件夹 | | | |_api前台接口文件夹 | |_channel0某频道文件夹 | | |_html某频道HTML文件夹 | | | |_1某静态页面文件夹 | | |_js某频道JS文件夹 | | |_upload某频道上传文件文件夹 |

3、| | |_class前台类文件夹 | |_common前台通用功能文件夹 | |_global系统全局配置或功能文件夹 | |_templates系统全局配置或功能文件夹 | |_skin0前台模板文件夹 | |_css系统全局配置或功能文件夹 | |_images系统全局配置或功能文件夹 | |_cut切片文件夹 |_development开发文稿文件夹 |_resource资料文件夹 |_tools系统开发辅助工具文件夹 |_ui用户界面设计文件夹 |_readme.txt描述文件夹结构二、文件名1文件夹命名文件夹命名一般采用英文,长度一般不超过20个字符,命名采用小写字母,一些常见的文

4、件夹命名如:images(存放图形文件),flash(存放Flash文件),style(存放CSS文件),scripts(存放JavaScript脚本),inc(存放include文件),link(存放友情链接),media(存放多媒体文件)等。文件名称统一用小写的英文字母、数字和下划线的组合。2文件命名类文件:类文件由类的前缀 cls + _ + 具体文件名 + 后缀组成,如产品类文件 cls_product.php。函数文件:函数文件由函数前缀 fun + _ + 具体文件名 + 后缀组成,如产品函数文件fun_product.php。三、注释1块注释块注释通常用于提供对文件,方法,数据结

5、构和算法的描述。块注释被置于每个文件的开始处以及每个方法之前。它们也可以被用于其他地方,比如方法内部。在功能和方法内部的块注释应该和它们所描述的代码具有一样的缩进格式。比如:/*这里是块注释*/2单行注释短注释可以显示在一行内,并与其后的代码具有一样的缩进层级。如果一个注释不能在一行内写完,就该采用块注释。单行注释之前应该有一个空行。以下是一个代码中单行注释的例子:if (condition)/以下代码运行的条件.3尾端注释极短的注释可以与它们所要描述的代码位于同一行,但是应该有足够的空白来分开代码和注释。若有多个短注释出现于大段代码中,它们应该具有相同的缩进。以下是一个代码中尾端注释的例子:

6、if ($a = 2)return TRUE; /对单一条件的说明elsereturn isPrime($a); /其余的条件 4文档注释文档注释描述php的类、构造器,方法,以及字段(field)。每个文档注释都会被置于注释定界符/*.*/之中,一个注释对应一个类或成员。该注释应位于声明之前:/* * 软件名称:CMS * 软件版本:v2.0 * 文 件 名:demo.php * 文件版本:1.0 * 作 者:Jack * 创建日期:2008-03-05 * 修改日期:2008-03-05 * 描 述:代码编写格式演示 */ class Example .注意顶层(top-level)的类是

7、不缩进的,而其成员是缩进的。描述类的文档注释的第一行(/*)不需缩进;随后的文档注释每行都缩进1格(使星号纵向对齐)。成员,包括构造函数在内,其文档注释的第一行缩进4格,随后每行都缩进5格。若你想给出有关类、变量或方法的信息,而这些信息又不适合写在文档中,则可使用实现块注释或紧跟在声明后面的单行注释。例如,有关一个类实现的细节,应放入紧跟在类声明后面的实现块注释中,而不是放在文档注释中。文档注释不能放在一个方法或构造器的定义块中,因为程序会将位于文档注释之后的第一个声明与其相关联。四、声明本部分忽略五、语句1简单的语句每行至多包含一条语句,例如:$argv+; / 正确的$argc-; / 正

8、确的$argv+; $argc-; / 错误的2复合语句复合语句是包含在大括号中的语句序列,形如" 语句 "。例如下面各段。被括其中的语句应该较之复合语句缩进一个层次左大括号""应位于复合语句起始行尾另起一行并与复合语句首行对齐;右大括号""应另起一行并与复合语句首行对齐。大括号可以被用于所有语句,包括单个语句,只要这些语句是诸如if-else或for控制结构的一部分。这样便于添加语句而无需担心由于忘了加括号而引入bug。3返回语句一个带返回值的return语句不使用小括号"()",除非它们以某种方式使返回值更为显

9、见。例如:² return;² return myDisk.size();² return ($size ? $size : $defaultSize);4If与else语句if-else语句应该具有如下格式:if (condition) /进行操作的条件statements;if (condition) /进行操作的条件.statements; else /进行操作的条件statements;if (condition) /进行操作的条件statements;else if (condition) /进行操作的条件 statements;else /进行操作的条

10、件statements;注意:if语句总是用""和""括起来,避免使用如下容易引起错误的格式:if (condition) /避免这种写法,他忽略了“”statement;5For语句一个for语句应该具有如下格式:for (initialization; condition; update)statements;6While语句一个while语句应该具有如下格式:while (condition)statements;7Do while语句一个do-while语句应该具有如下格式:do statements; while (condition);8Sw

11、itch语句一个switch语句应该具有如下格式:switch (condition) case ABC: / falls through statements;case DEF:statements;break;case XYZ:statements;break;default:statements;break;9Trycatch语句一个try-catch语句应该具有如下格式:try statements;catch (ExceptionClass e) statements;一个try-catch语句后面也可能跟着一个finally语句,不论try代码块是否顺利执行完,它都会被执行。try

12、 statements;catch (ExceptionClass e)statements;Finallystatements;六、空白1空行空行将逻辑相关的代码段分隔开,以提高可读性。下列情况应该总是使用两个空行:² 一个源文件的两个片段(section)之间。² 类声明之间。 下列情况应该总是使用一个空行:² 两个方法之间。² 方法内的局部变量和方法的第一条语句之间。² 块注释或单行注释之前。² 一个方法内的两个逻辑段之间,用以提高可读性。2空格下列情况应该使用空格:² 一个紧跟着括号的关键字应该被空格分开,例如:wh

13、ile ( true ) .注意:空格不应该置于方法名与其左括号之间。这将有助于区分关键字和方法调用。² 空格应该位于参数列表中逗号的后面所有的二元运算符,除了".",应该使用空格将之与操作数分开。一元操作符和操作数之间不因该加空格,比如:负号("-")、自增("+")和自减("-")。例如: $a += $c + $d;$a = ( $a + $b ) / ( $c * $d );while ( $d+ = $s+ ) $n+;printSize( "size is " + $foo

14、 + "n" );² for语句中的表达式应该被空格分开,例如: for (expr1; expr2; expr3)² 强制转型后应该跟一个空格,例如: myMethod( (byte) $aNum, (int) $x );myMethod( (int) ($cp + 5 ), ( (int) ($i + 3) + 1 );七、命名规范1数据库数据库命名规范参见数据库设计及命名规范2类a、类的组成Class 类名(尽量描述实体的内容,由单词或单词组合)/*类 名: tb_User_Info作 者: Jack基 类:创建日期: 2008-02-27修改日期

15、: 2008-02-27 版 本: 1.0 描 述: 保存用户资料*/public function _construct()public function _destruct()public $变量名; /作用private $变量名; /作用public Function 函数名(形参) /*参数说明:功能:返回值:备注:*/private Function 函数名(形参) /*参数说明:功能:返回值:备注:*/ protected Function 函数名(形参) /*参数说明:功能:返回值:备注:*/3函数方法名是一个动词,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母

16、大写。function run();function runFast();function getBackground();通常每个方法都是执行一个动作的,所以对它的命名应该清楚的说明它是做什么的:用checkForErrors()代替errorCheck(),用dumpDataToFile()代替dataFile()。这么做也可以使功能和数据成为更可区分的物体。有时后缀名是有用的: Max - 含义为某实体所能赋予的最大值。Cnt - 一个运行中的计数变量的当前值。Key - 键值。例如:retryMax 表示最多重试次数,retryCnt 表示当前重试次数。 有时前缀名是有用的: is -

17、 含义为问一个关于某样事物的问题。无论何时,当人们看到Is就会知道这是一个问题。 get - 含义为取得一个数值。set - 含义为设定一个数值例如:isHitRetryLimit4变量² 变量命名采用匈牙利命名法² 匈牙利命名法是一种编程时的命名规范。基本原则是:变量名属性类型对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的。a Array 数组号 aImage b BOOL (int) 布尔(整数) bDbstate o Object 对象 oDatabase f float

18、浮点型 fMoney g_ global 全局的 g_sUserName i Integer 整数 iOld s String 字符串 sContents5Css规范Css命名规范参见css命名规范及细则。八、编程惯例1常量位于for循环中作为计数器值的数字常量,除了-1,0和1之外,不应被直接写入代码。2赋值² 避免在一个语句中给多个变量赋相同的值。它很难读懂。例如:$fooBar.fChar = $barFoo.lchar = 'c' / 错误² 不要将赋值运算符用在容易与相等关系运算符混淆的地方。例如:if ($c+ = $d+) / 错误 .应该写成if ($c+ = $d+) != 0).² 不要使用内嵌(embedded)赋值运算符试图提高运行时的效率,这是编译器的工作。例如:$d = ($a = $b + $c) + $r; / 错误应该写成$a = $b + $c;$d = $a + $r;3圆括号一般而言,在含有多种运算符的表达式中使用圆括号来避免运算符优先级问题,是个好方法。即使运算符的优先级对你而言可能很清楚,但对其他人未必如此。你不能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论