通用原则
- 语义化:所见即所得
-
前缀:
is
表示是否(is+ 形容词 + 名词),get
表示读,set
表示写 -
单复数:如一个用户
getUser
,多个用户getUsers
-
避免冗余:尽量不使用
data
、list
、info
后缀 -
慎用通用名称:慎重使用
common
、util
、functions
、class
、object
、basic
等通用名称,难以维护;要根据功能起一个准确的名字,比如要做字符串处理的类,可以叫StringLib.php
,放在 lib 目录里。
命名规则
-
类名:遵循
StudlyCaps
规范,以大写字母开头,驼峰命名。 - 类文件名:与类名相同。
-
非类文件名:全小写,下划线分隔,不得使用空格。如
get_user.php
-
类中的常量:所有字母都 必须 大写,单词间用下划线分隔。如
const APP_VERSION = '1.0.0';
-
类中的属性:(以下都可以)
- 大写开头的驼峰式 (
$StudlyCaps
) - 小写开头的驼峰式 (
$camelCase
) - 下划线分隔式 (
$under_score
)
- 大写开头的驼峰式 (
-
目录名:全小写,下划线分隔,不得使用空格。比如
controllers
、models
-
函数名:小写字母开头,驼峰命名,动词优先,两个函数中间空一行。如
function editBlog()
,而不用function blogEdit()
-
变量:全小写,下划线分隔,例如:
$user_id
-
关键字:必须全部小写,常量
true
、false
和null
也必须全部小写。 - 单引号与双引号:优先使用单引号,当需要转义时使用双引号。
注释规则
-
文件注释:注释紧跟
<?php
下一行。注明作者@author
,版本号@version
。
<?php
/**
* 业务:添加、更新
* @author itxiaoma
* @version 1.0.0
*/
- 函数注释:功能,输入参数格式、名称,输出格式。
/**
* 编辑博客
* @param int $id 博客 ID
* @return array
*/
public static function editBlog($id)
-
功能注释:功能,输入参数格式、介绍,输出格式。
- 单行注释
-
多行注释
public static function editBlog($id) { $id = 0; // 单行注释 /* 这是 多行注释 */ }
代码风格
- 代码必须使用 4 个空格符而不是 tab 键 进行缩进。
- 每行一定不能存在多于一条语句。
- 每条语句一定不可定义超过一个属性。不要使用
$a=$b=0;
这种写法。 - 每个 namespace 命名空间声明语句和 use 声明语句块后面,必须插入一个空白行。
- 所有 use 必须 在 namespace 后声明。
- 不要使用下划线作为前缀,来区分属性是
protected
或private
。不要使用private function _test()
这种写法。 -
方法的参数列表中,每个逗号后面必须要有一个空格,而逗号前面一定不能有空格。有默认值的参数,必须放到参数列表的末尾。
public function foo($arg1, &$arg2, $arg3 = []) {}
- 条件判断的大括号:必须有大括号,即使只有一行。
参考资料:
PHP Manual
http://www.php.net/manual/zh/…
PHP Coding Standards
https://github.com/php/php-sr…
PHP 书写规范 PHP Coding Standard
https://www.cnblogs.com/ooooo…