2024年1月4日发(作者:戏雪晴)
编码规范
文件状态:
[√] 草稿
[ ] 正式发布
[ ] 正在修改
文件标识: 编码规范
当前版本:
1.0
组员:
肖杰,黄其敏,邝伟俊,黄胜远,黄聪
完成日期:
待定
A1.1开发工具
Sublime text3
A1.2 PHP开始和结束标记
若嵌入其他语法就用
A1.3 PHP
变量或者语句注释
程序中变量或者语句的注释遵循以下原则:
a.
注释中除了文件头的注释块外,其他地方都不使用/** */注释,而使用//的注释;
b.写在变量或者语句的前面一行,而不写在同行或者后面;
c.注释采用//的方式;
d.每个函数前面要包含一个注释块。内容包括函数功能简述,输入/输出参数,预期的返回值,出错代码定义。
e.注释完整规范。
f.把已经注释掉的代码删除,或者注明这些已经注释掉的代码仍然保留在源码中的特殊原因。
A1.3 PHP程序文件名、目录名、类名、方法名、函数名、变量名命名规范
a . 类文件都是以.为后缀(这里是仿照的是ThinkPHP内部使用的类库文件),使用驼峰法命名,并且首字母大写,例如 ;
b. 类的命名空间地址和所在的路径地址一致,例如 HomeControllerUserController类所在的路径应该是 Application/Home/Controller/;
c. 确保文件的命名和调用大小写一致,是由于在类Unix系统上面,对大小写是敏感的(而ThinkPHP在调试模式下面,即使在Windows平台也会严格检查大小写);
d. 类名和文件名一致(包括上面说的大小写一致),例如 UserController类的文件命名是, InfoModel类的文件名是, 并且不同的类库的类命名有一定的规范;
e. 函数、配置文件等其他类库文件之外的一般是以.php为后缀(第三方引入的不做要求);
f. 函数的命名使用小写字母和下划线的方式,例如 get_client_ip;
g. 方法的命名使用驼峰法,并且首字母小写或者使用下划线“_”,例如
getUserName,_parseType,通常下划线开头的方法属于私有方法;
h. 属性的命名使用驼峰法,并且首字母小写或者使用下划线“_”,例如
tableName、_instance,通常下划线开头的属性属于私有属性;
i. 以双下划线“__”打头的函数或方法作为魔法方法,例如 __call 和 __autoload;
j. 常量以大写字母和下划线命名,例如 HAS_ONE和 MANY_TO_MANY;
k. 配置参数以大写字母和下划线命名,例如HTML_CACHE_ON;
l. 语言变量以大写字母和下划线命名,例如MY_LANG,以下划线打头的语言变量通常用于系统语言变量,例如 _CLASS_NOT_EXIST_;
m. 对变量的命名没有强制的规范,可以根据团队规范来进行;
n. ThinkPHP的模板文件默认是以.html 为后缀(可以通过配置修改);
o. 数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如 think_user 表和 user_name字段是正确写法,类似 _username 这样的数据表字段可能会被过滤。
A1.4类的构造函数
如果要在类里面编写构造函数,必须遵循以下规则:
a.不能在构造函数中有太多实际操作,只能用来初始化一些值和变量;
b.不能在构造函数中因为使用操作而返回false或者错误,因为在声明和实例化一个对象的时候,是不能返回错误的;
一句话总结:构造函数一般只用来做简单的初始化操作,且没有返回值。
A1.5 类文件的注释
每个类必须有一个符合 PHPDocumentor 标准的文档块,至少包含这些
phpDocumentor 标签:
PHP的类文件()
/**
* 类的简述
*
* @author gaolf
*/
A1.6 方法和函数的注释
每个函数,包括对象方法,必须有最少包括下列内容的文档块:
函数的描述;
函数或方法的修饰符;
所有参数;
所有可能的返回值。
/**
* 连接分布式文件系统
* @access public
* @param string $type 文件类型
* @param array $options 配置数组
* @return void
*/
A1.7 临时性代码注释
在程序开发中难免留下一些临时代码和调试代码,以免日后遗忘,此类代码必须添加注释。所有临时性、调试性、试验性的代码,都可以添加统一的注释标记,例如“//debug”并后跟完整的注释信息,这样可以方便在程序发布和最终调试前批量检查程序中是否还存在有疑问的代码。
A1.8空行和空白
在程序中=符号的书写遵循以下规则:
在=符号的两侧,均需留出一个空格;如$a = $b等;
$testa = $aaa;
$testaa = $bbb;
(if ($a == $b)除外,两个==连在一起)
空白:
a . 不同的功能之间代码间需要隔一行空行,比如if、for等功能块前后需要空行。
b . 方法与方法 或者 函数与函数 之间空行。
A1.9
小括号( )和函数、关键词等
小括号、关键词和函数遵循以下规则:
a.不要把小括号和关键词紧贴在一起,要用一个空格间隔;如if ( $a<$b )(这个不做强制要求)
b.小括号和函数名间没有空格;如$test = date("ymdhis");
c.除非必要,不要在Return返回语句中使用小括号。如Return $a;
A2.0if else swith for while等书写
对于控制结构的书写遵循以下规则:
a.在if条件判断中,如果用到常量判断条件,将常量放在等号或不等号的左边,例如:
if ( 6 == $errorNum ),因为如果你在等式中漏了一个等号,语法检查器会为你报错,可以很快找到错误位置,这样的写法要多注意;
b. switch结构中必须要有default块;
c.在for和wiile的循环使用中,要警惕continue、break的使用,避免产生类似goto的问题;
A2.2使用单引号声明字符串
单引号不需要去解析变量,也不需要解析全部的转义字符,所以解析的速度快。因些在绝大多数可以使用单引号的场合,禁止使用双引号。依据上述分析,可以或必须使用单引号的情况如下(但不限于此)
一句话总结:单引号解析速度比双引号快,在可以用单引号的地方,推荐使用单引号。
2024年1月4日发(作者:戏雪晴)
编码规范
文件状态:
[√] 草稿
[ ] 正式发布
[ ] 正在修改
文件标识: 编码规范
当前版本:
1.0
组员:
肖杰,黄其敏,邝伟俊,黄胜远,黄聪
完成日期:
待定
A1.1开发工具
Sublime text3
A1.2 PHP开始和结束标记
若嵌入其他语法就用
A1.3 PHP
变量或者语句注释
程序中变量或者语句的注释遵循以下原则:
a.
注释中除了文件头的注释块外,其他地方都不使用/** */注释,而使用//的注释;
b.写在变量或者语句的前面一行,而不写在同行或者后面;
c.注释采用//的方式;
d.每个函数前面要包含一个注释块。内容包括函数功能简述,输入/输出参数,预期的返回值,出错代码定义。
e.注释完整规范。
f.把已经注释掉的代码删除,或者注明这些已经注释掉的代码仍然保留在源码中的特殊原因。
A1.3 PHP程序文件名、目录名、类名、方法名、函数名、变量名命名规范
a . 类文件都是以.为后缀(这里是仿照的是ThinkPHP内部使用的类库文件),使用驼峰法命名,并且首字母大写,例如 ;
b. 类的命名空间地址和所在的路径地址一致,例如 HomeControllerUserController类所在的路径应该是 Application/Home/Controller/;
c. 确保文件的命名和调用大小写一致,是由于在类Unix系统上面,对大小写是敏感的(而ThinkPHP在调试模式下面,即使在Windows平台也会严格检查大小写);
d. 类名和文件名一致(包括上面说的大小写一致),例如 UserController类的文件命名是, InfoModel类的文件名是, 并且不同的类库的类命名有一定的规范;
e. 函数、配置文件等其他类库文件之外的一般是以.php为后缀(第三方引入的不做要求);
f. 函数的命名使用小写字母和下划线的方式,例如 get_client_ip;
g. 方法的命名使用驼峰法,并且首字母小写或者使用下划线“_”,例如
getUserName,_parseType,通常下划线开头的方法属于私有方法;
h. 属性的命名使用驼峰法,并且首字母小写或者使用下划线“_”,例如
tableName、_instance,通常下划线开头的属性属于私有属性;
i. 以双下划线“__”打头的函数或方法作为魔法方法,例如 __call 和 __autoload;
j. 常量以大写字母和下划线命名,例如 HAS_ONE和 MANY_TO_MANY;
k. 配置参数以大写字母和下划线命名,例如HTML_CACHE_ON;
l. 语言变量以大写字母和下划线命名,例如MY_LANG,以下划线打头的语言变量通常用于系统语言变量,例如 _CLASS_NOT_EXIST_;
m. 对变量的命名没有强制的规范,可以根据团队规范来进行;
n. ThinkPHP的模板文件默认是以.html 为后缀(可以通过配置修改);
o. 数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如 think_user 表和 user_name字段是正确写法,类似 _username 这样的数据表字段可能会被过滤。
A1.4类的构造函数
如果要在类里面编写构造函数,必须遵循以下规则:
a.不能在构造函数中有太多实际操作,只能用来初始化一些值和变量;
b.不能在构造函数中因为使用操作而返回false或者错误,因为在声明和实例化一个对象的时候,是不能返回错误的;
一句话总结:构造函数一般只用来做简单的初始化操作,且没有返回值。
A1.5 类文件的注释
每个类必须有一个符合 PHPDocumentor 标准的文档块,至少包含这些
phpDocumentor 标签:
PHP的类文件()
/**
* 类的简述
*
* @author gaolf
*/
A1.6 方法和函数的注释
每个函数,包括对象方法,必须有最少包括下列内容的文档块:
函数的描述;
函数或方法的修饰符;
所有参数;
所有可能的返回值。
/**
* 连接分布式文件系统
* @access public
* @param string $type 文件类型
* @param array $options 配置数组
* @return void
*/
A1.7 临时性代码注释
在程序开发中难免留下一些临时代码和调试代码,以免日后遗忘,此类代码必须添加注释。所有临时性、调试性、试验性的代码,都可以添加统一的注释标记,例如“//debug”并后跟完整的注释信息,这样可以方便在程序发布和最终调试前批量检查程序中是否还存在有疑问的代码。
A1.8空行和空白
在程序中=符号的书写遵循以下规则:
在=符号的两侧,均需留出一个空格;如$a = $b等;
$testa = $aaa;
$testaa = $bbb;
(if ($a == $b)除外,两个==连在一起)
空白:
a . 不同的功能之间代码间需要隔一行空行,比如if、for等功能块前后需要空行。
b . 方法与方法 或者 函数与函数 之间空行。
A1.9
小括号( )和函数、关键词等
小括号、关键词和函数遵循以下规则:
a.不要把小括号和关键词紧贴在一起,要用一个空格间隔;如if ( $a<$b )(这个不做强制要求)
b.小括号和函数名间没有空格;如$test = date("ymdhis");
c.除非必要,不要在Return返回语句中使用小括号。如Return $a;
A2.0if else swith for while等书写
对于控制结构的书写遵循以下规则:
a.在if条件判断中,如果用到常量判断条件,将常量放在等号或不等号的左边,例如:
if ( 6 == $errorNum ),因为如果你在等式中漏了一个等号,语法检查器会为你报错,可以很快找到错误位置,这样的写法要多注意;
b. switch结构中必须要有default块;
c.在for和wiile的循环使用中,要警惕continue、break的使用,避免产生类似goto的问题;
A2.2使用单引号声明字符串
单引号不需要去解析变量,也不需要解析全部的转义字符,所以解析的速度快。因些在绝大多数可以使用单引号的场合,禁止使用双引号。依据上述分析,可以或必须使用单引号的情况如下(但不限于此)
一句话总结:单引号解析速度比双引号快,在可以用单引号的地方,推荐使用单引号。