首页 > 编程 > PHP > 正文

PHP代码规范

2019-11-08 02:52:22
字体:
来源:转载
供稿:网友

编码规范

1、使用Yii2 核心框架代码规范

* 文件必须使用 <?php 或 <?= 标签。* 文件未尾应该有一个新行。* PHP代码文件必须只能使用无BOM的UTF-8。* 代码缩进必须使用4个空格,而不是tab按键。* 类名必须使用大驼峰式(首字母大写)声明。* 类中常量必须使用全大写带下划线方式声明。* 方法名称必须使用小驼峰式(首字母小写)声明 。* 属性名称必须使用小驼峰式(首字母小写)声明。* 如果是私有属性名,必须使用下划线开始。* 使用elseif代替else if。

2、变量与数据类型

* 所有的数据类型和变量均应该小写。包括true,false,null和array

3、字符串

如果字符串中不包括变量或单引号时,请使用单引号。$str = 'Like this.';如果字符串中有单引号,你可以使用双引号来避免额外的转义。变量替换$str1 = "Hello $username!";$str2 = "Hello {$username}!";

4、类

* 类应该使用大驼峰式(首字母大写)方式来命名。* 括号应该写在类名下方。* 每个类必须要有符合PHPDoc的文档部分。  参数,变量,属性和返回值必须声明类型,如boolean,integer,string,array或null。  你也可以使用类名,像Model或ActiveRecord。如:对于一个数组类型可以使用ClassName[]。* 在类中的所有代码必须只有一个独立缩进tab。* 一个PHP文件中仅应该有一个类。* 所有的类均应该存在命名空间。* 类名匹配文件名。类命名空间应该匹配字典结构。
/*** Documentation*/class MyClass extends /yii/Object implements MyInterface{// code}
类中常量必须使用全大写带下划线方式声明。例如:<?phpclass Foo{    const VERSION = '1.0';    const DATE_APPROVED = '2012-06-01';}
属性* 当声明公共类成员时,要特别明确关键字public。* 公有和保护变量应该在任何方法声明前被声明。私有变量可以在类顶部声明,但也* 可添加在关联的类方法字块使用之前。* 类中的属性声明顺序应该是从公有、保护到私有。* 为了增强可读性,属性声明间没有空行且在属性和方法声明间有两个空⾏行。* 私有变量应该像如此命名$_varName。* 公共类成员和独立变量应该这样首字母小写命名$camelCase。* 使用描述命名。变量最好不要使用$i和$j来命名。例如:<?phpclass Foo{    public $publicProp;    protected $protectedProp;    private $_privateProp;}
方法* 函数和方法应该命名使用首字母小写的小驼峰式。* 名字应该体现函数所实现的功能描述。* 类方法中应该经常可见private,protected和public的修饰。var是不允许的。* 方法的开括号应该在方法下方。/*** Documentation*/class Foo{    /**    * Documentation    */    public function bar()    {        // code        return $value;    }}

5、数组

* 数字索引不要使用负数作为索引。* 使用下面的方法来声明数组:$arr = [3,14,15,'Yii','FrameWork'];* 如果有太多的元素时,可单独分行:$arr = [3, 14, 15,92, 6, $test,'Yii', 'Framework',];* 使用下面的格式来关联数组:$config = ['name' => 'Yii','options' => ['usePHP' => true],];

6、控制语句

* 控制语句的条件必须有一个独立的空格在前后的插入句。* 操作符的括号内应该用空格间隔。* 开括号跟控制语句在同一行中。* 关括号应该是新起一行。* 针对只有一行的语句也使用括号。if ($event === null) {    return new Event();}if ($event instanceof CoolEvent) {    return $event->instance();}return null;// the following is NOT allowed:if (!$model && null === $event)    throw new Exception('test');

7、switch语句

switch使用下面的格式:switch ($this->phpType) {    case 'string':        $a = (string) $value;        break;    case 'integer':    case 'int':        $a = (int) $value;        break;    case 'boolean':        $a = (bool) $value;        break;    default:        $a = null;}

其他规范项

设计文档	需包含		主逻辑流程图or可以说明业务逻辑的图		存储设计			db设计			其他设计			//容量要求和归档,退出设计			代码设计简要说明log规范	log文件位置存储要统一文件配置			其他存储规范	oss		针对不同文件做路径规划	ocs		key统一文件管理		附加功能模块前缀	mqs				key统一文件管理		附加功能模块前缀


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表