PHP码农进化史1_Zend 【转】

来源:互联网 发布:pptv聚力网络电视手机 编辑:程序博客网 时间:2024/05/22 04:58

Zend-PHP编码规范

1.对于只包含PHP的文件,"?>"是不允许存在的。注释:防止末尾被意外的注入空白并显示输出。

 

2.缩进应使用四个空格的缩进,而不使用制表符TAB。

 

3.一行80个字符是比较合适的,最多为120字符。

 

4.行的结束符只能是标准的UNIX文本文件的换行,换行符在文件中表示为10,或16进制的 0x0A。

不要使用windows的回车换行组合(0x0D,0x0A)。

 

5.类的命名只允许有字母数字字符,不鼓励使用数字。下划线只允许做路径分隔符。例如Zend/Db/Table.php文件对应的类的名称为Zend_Db_Table。如果类名包含多个单词,那么每一个单词的第一个字母必须大写。连续的大写是不允许的,如"Zend__PDF"是不允许的,而"Zend_Pdf"是可以接受的。*用户的代码最好不要以Zend_开头。

 

6.接口类规定同上,但最后必须以"Interface"结尾。如"Zend_Pdf_Interface".

 

7.只有字母数字字符,下划线和短横线"-"可用,空格是不允许的。

包含任何php代码的文件必须以".php"扩展名为结尾.同样需要遵循类名的规则.

 

 

8.函数名只使用字母数字字符,不鼓励使用数字,下划线是不允许的。

 

函数名总是以小写开头,但函数名包含多个单词,每个子的首字母必须大写,遵循“驼峰”格式。

鼓励使用长的名字,这样容易理解代码。

 

对于面向对象编程,对象的访问器总是以"get","set"为前缀。当使用设计模式如单态模式(singleton)或工厂模式(factory),方法的名字应当包含模式的名字,这样容易从名字识别设计模式.

 

在对象中的方法,声明为"private"或"protected"的,名称的首字符必须是一个单个的下划线,这是唯一的下滑线在方法名字中使用的方法。声明为"public"的从不以下划线开头。

 

全局函数("floating functions")允许但是不鼓励使用,建议把这类函数封装到静态类里。

 

 

9.变量只包含数字字母字符,不鼓励使用数字,下划线不接受。

 

声明为"private"或"protected"的类成员变量名必须以一个单个下划线开头,这是唯一的下划线在变量名中的用法,声明为"public"的从不以下划线开头.

 

变量名总以小写字母开头并遵循“驼峰式”命名约定。

 

鼓励使用冗长的名字,这样容易理解,除非在小循环中,不鼓励使用简洁的名字"$i"或"$n"之类的。

 

如果有一个循环超过了20行代码,索引的变量名字必须有个描述性意义的名字。

 

常量包含数字字母字符恶化下划线,数字允许作为常量名。

 

常量名字所有字母必须大写.

 

常量中的单词必须加下滑线。

 

常量必须通过"const"定义为类的成员,不鼓励使用"define"定义的全局常量.

 

 

10.php代码总是使用完整的php标签定界。<?php...?>。段标签是不允许的。只包含php的代码文件,不加结束标签。参见规则1。

 

11.当字符串是文字,不包含变量时,用单引号来括。当文字字串中包含单引号时,用双引号括,特别在SQL语句中。

 

12.变量替换允许"$name",不许"$(name)"。虽然两种都是对的。

 

13.字符串用"."操作符链接,在它的前后加上空格提高可读性。如"'Zend' . ' ' . 'Technologies'"。也可以分为多行来提高可读性。

$sql = "SELECT 'id','name' FROM 'people'"

. "WHERE 'name' = 'Susan'"

. "ORDER BY 'name' ASC";

 

14.数组中,索引不能为负数。

 

建议索引从0开始。

 

用array声明多行有索引的数组,在每个连续的行的开头要用空格填补对齐。

 

用声明关联数组array,我们鼓励把代码分成多行,在每个连续行的开头用空格填补来对其键和值。如:

$sampleArray = array('firstKey' => 'firstValue',

                     'secondKey' => 'secondValue'                      

                     );

 

 

15.花括号总是从类名的下一行开始。

 

每个类必须有一个复合PHPDocumentor标准的文档块。

四个空格的缩进。

 

每个PHP文件中只有一个类。

 

16.变量的声明必须在类的顶部,要先于方法的声明。

 

不允许使用var。要用private、protected或public.

 

直接访问变量允许但是不鼓励,最好使用访问器(set/get).

 

17.函数的参数用逗号和紧接着的空格分开。如:

threeArguments(1, 2, 3);

传址方式在调用的时候是禁止的。

 

 

18.使用if and elseif的控制语句在条件语句的圆括号前后都必须有一个空格。

在圆括号里的田间语句,操作符必须用空格分开,鼓励使用多重圆括号以提高在复杂的条件中划分逻辑组合。

前花括号和条件语句在同一行,后花括号单独在最后一行,其中的内容用四个空格缩进。如:

if ($a > 1) {

    $a = 1;

} elseif ($a = 1) {

    $a = 0;

} else {

    $a = -1;

}

*虽然php允许这些语句不使用花括号,但这在ZF的代码标准中,这是不允许的。

 

 

19.在"switch"结构中,控制语句在条件语句的圆括号前后必须有一个单独的空格。

代码必须有四个空格的缩进,在“case”中的代码再缩进四个空格。

switch ($numPeople) {

    case 1:

        break;

    case 2;

        break;

    default:

        break;

}

switch语句中必须有default.

*有时候,在falls throuth 到下个case的case语句中不写break or return 很有用。为了区别于bug,任何case语句中,所有不写break or return的地方必须有"//break intentionally omitted"这样的注释。

 

 

20.所有文档块("docblocks")必须和phpDocumentor格式兼容。

所有Zend Framework或和它一起工作的源代码必须在每个文件的顶部包含文件级("file-level")的docblock,

每个包含php代码的文件必须在文件顶部包含这些phpDocumentor标签:

每个类至少包含以下标签:

每个函数,包括对象方法,必须最少包含以下文档块(docblock):

a.函数的不描述

b.所有参数

c.所有可能的返回值

英文访问级别已经有"private"等所以不需要用@access。

如果函数/方法抛出一个异常,使用@throws:

@throws exceprionclass [description]

 

原创粉丝点击