发布时间:2018-04-18 编辑:钰歆博客 阅读(696)
一、编码规范
1、命名空间
PHP 命名空间提供了一种将相关的类、函数和常量组合到一起的途径。有效的解决 多个模块之间的冲突问题,并且实现了更加高效的类库自动加载机制。
示例:Org\Util\File类的定义为:
namespace Org\Util;
class File {
……
}
其所在的路径是 ThinkPHP/Library/Org/Util/File.class.php,因此,如果我们 实例化该类的话:
$class = new \Org\Util\File();
系统会自动加载 ThinkPHP/Library/Org/Util/File.class.php 文件。
2、命名约定
2.1 类命名
Class应该具有一个描述性的名字,可能时应该避免使用缩写,命名时使用驼峰法。
好的 Class 名字示例如下:
Log
NetFinger
HtmlUploadError
2.2 函数的命名
函数的命名使用小写字母和下划线的方式。
示例:get_client_ip
2.3方法的命名
方法的命名使用驼峰法,并且首字母小写或者使用下划线“_”,例如 getUserName, _parseType,通常下划线开头的方法属于私有方法;
示例: public function getUserName()
2.4 属性的命名
属性的命名使用驼峰法,并且首字母小写或者使用下划线“_”,例如 tableName、_instance,通常下划线开头的属性属于私有属性;
2.5 配置参数以大写字母和下划线命名
'URL_CASE_INSENSITIVE' =>true,//不限制大小写
2.6 数据表和字段命名规则
数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如 think_user表 和 user_name字段是正确写法,类似 _username 这样的数据表字段可能会被过滤。
3、模板文件命名约定
3.1模板文件后缀
文件名统一采用小写加下划线方式命名,默认后缀 .html
3.2模板命名约定
模板命名尽量跟方法名一致,有利于根据访问地址快速定位到模板文件
示例:
方法名:helpList()
模板名:helplist.html 或者 help_list.html
二、其他规范
1、代码缩进
使用4个空格作为缩进,而不使用tab缩进。
2、大括号{ }书写规则
在程序中进行结构控制代码编写,如if、for、while、switch等结构,大括号传统的有两种书写习惯,分别如下:
A.{直接跟在控制语句之后,不换行,如:
for ($i=0;$i<$count;$i++) {
echo "test";
}
B.{在控制语句下一行,如:
for($i=0;$i<$count;$i++)
{
echo "test";
}
其中,a是PEAR建议的方式,但是从实际书写中来讲,这并不影响程序的规范和影响用phpdoc实现文档,所以可以根据个人习惯来采用上面的两种方式,但是要求在同一个程序中,只使用其中一种,以免造成阅读的不方便。
3、小括号( )和函数
A.不要把小括号和关键词紧贴在一起,要用一个空格间隔;如if ( $a<$b );
B.小括号和函数名间没有空格;如$test = date("ymdhis");
4、=符号书写
在程序中=符号的书写遵循以下规则:
A.在=符号的两侧,均需留出一个空格;如$a = $b 、if ($a = = $b)等;
B.在一个申明块,或者实现同样功能的一个块中,要求=号尽量上下对其,左边可以为了保持对齐使用多个空格,而右边要求空一个空格;如下例:
$testa = $aaa;
$testaa = $bbb;
$testaaa = $ccc;
5、if else swith for while等书写
A.在if条件判断中,如果用到常量判断条件,将常量放在等号或不等号的左边,例如:
if ( 6 == $errorNum ),因为如果你在等式中漏了一个等号,语法检查器会为你报错,可以很快找到错误位置,这样的写法要多注意;
B.switch结构中必须要有default块;
C.在for和wiile的循环使用中,要警惕continue、break的使用,避免产生类似goto的问题;
6、true/false和0/1判断
遵循以下规则:
A.不能使用0/1代替true/false,在PHP中,这是不相等的;
B.不要使用非零的表达式、变量或者方法直接进行true/false判断,而必须使用严格的完整true/false判断;
不使用if ($a) 或者if (check()) 而使用if (FALSE != $a)或者 if (FALSE != check())
7、函数和方法的注释范例
注释是软件可读性的具体体现。程序注释量一般占程序编码量的20%,软件工程要求不少于20%。
示例:
/**
* @Purpose:
* 执行一次查询
* @Method Name: Query()
* @Param: string $queryStr SQL查询字符串
* @Param: string $username 用户名
* @Author: Michael Lee
* @Return: mixed 查询返回值(结果集对象)
*/
三、逻辑思维与结构
1、开发思路
对于PHP项目开发,尽量采用OOP(面向对象编程)的思想开发,将独立的功能模块尽量写成函数调用,对应一整块业务逻辑,建议封装成类,既可以提高代码可读性,也可以提高代码重用性。
重复的代码要做成公共的库。提高代码重用性。
新需求的开发,先剖析能否单独模块,模块与模块之间采用接口的调用方式,每个模块有几个类文件,类文件各自的作用和关联。
2、框架改动
框架本身一般已经封包好了各个基本单元,如非必要,尽量不要直接修改这些单元。重写了这些单元,意味一些继承调用规范可能就跟着改,这对于整个项目开发人员不利,所有人需要重新去认知使用规范。
标签: