一、规范前言

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、其他重要业务逻辑和操作时建议使用注释,备注写明当前的用途
单行注释后建议用一个空格隔开,例如:

// 这是一个注释

五、数据库应用

字段类型定义

文档更新时间: 2021-07-28 17:44   作者:admin