一、规范前言
PHP代码规范标准化,是为了在一致的开发环境下,提高代码的可读性,减少开发犯错的机会。
本规范的标准在绝大多数应用上仿照java技术体系,因为java技术体系以其众多成功的案例成为大部分计算机应用层的工业标准,此外便于日后公司向java技术体系转型。
二、命名定义
1、常量和环境变量命名
使用英文名词、动词,所有字母都使用大写,以下划线分隔每个单词,例:
常量
define( 'WEBSITE_NAME', '名称' );
define( 'WEBSITE_URL', '地址' )
环境变量
APP_DEBUG = true
2、变量命名
使用英文名词、动词,以大写字母作为单词的分隔,其他的字母均使用小写,单词的首个字母使用小写,不使用下划线,例:
$repeatCount = '';
$delUserSql = '';
3、类命名
使用英文名词,以大写字母作为词的分隔,其他的字母均使用小写,名词的首个字母使用大写,不使用下划线,例:
class UserAccount
{
...
}
class PaintingOrder
{
...
}
4、方法命名
使用英文名词、动词,以大写字母作为词的分隔,其他的字母均使用小写,单词的首个字母使用小写,不使用下划线,例:
class UserAccount
{
public function isAccountOk()
{
...
}
public function addAccount()
{
...
}
}
5、方法中参数命名
使用英文名词、动词,以大写字母作为词的分隔,其他的字母均使用小写,单词的首个字母使用小写,不使用下划线,例:
class UserAccount
{
public $accountName = '';
public $inputArray = '';
}
6、类属性命名
使用英文名词、动词,以大写字母作为词的分隔,其他的字母均使用小写,单词的首个字母。
使用大写,不使用下划线,对于类属性为某个对象变量,则以字符串Object为后缀,例:
class UserAccount
{
public $tableName = '';
public $databaseObject = '';
}
7、公共函数命名
函数的命名使用小写字母和下划线(小写字母开头)的方式,例如:
function get_client_ip()
{
......
}
8、数组键名和配置名
以小写字母和下划线命名,例如 url_route_on 和url_convert
并且代码块需要对齐
$arr = [
'url_route_on' => '',
'url_convert' => '',
];
9、数据表和字段
数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如:
think_user 表和 user_name 字段,不建议使用驼峰作为数据表及字段命名。
禁止使用中文命名。
10、目录和文件
目录使用小写+下划线;
类库、函数文件统一以.php为后缀;
类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致;
类(包含接口和Trait)文件采用驼峰法命名(首字母大写),其它文件采用小写+下划线命名;
类名(包括接口和Trait)和文件名保持一致,统一采用驼峰法命名(首字母大写);
三、语法书写
1、大括号{}
将大括号放置在函数和类名下方的同列处,例:
function test()
{
...
}
class Test
{
...
}
if、else、switch等,大括号不要换行,例如:
if ( 条件 ) {
...
} else {
...
}
switch ( 条件 ) {
...
}
2、代码缩进规则
使用制表符缩进(TAB键)或四个空格
3、声明定位规则
声明代码块需要对齐,且初次使用变量时需要初始化,例:
$tableName = '';
$databaseObject = '';
不使用以下方式,例:
$tableName;
$accountName = '';
$databaseObject = '';
四、程序注释
1、类的注释,要写明类的描述名称,创建人,创建时间等信息,例如:
/**
* 作为通用接口访问数据库的类
* @author: admin
* @date: 2004-08-18 09:15
*/
2、类方法的注释
/**
* 推送消息到群组
* @param string $name
* @param string|array $data
* @return int
*/
3、类属性的注释
/**
* 站点名称
* @var string
*/
protected $siteName = 'ReadlinePMS';
4、其他重要业务逻辑和操作时建议使用注释,备注写明当前的用途
单行注释后建议用一个空格隔开,例如:
// 这是一个注释
五、数据库应用
字段类型定义