1、使用Yii2 核心框架代码规范
* 文件必须使用 <?php 或 <?= 标签。* 文件未尾应该有一个新行。* PHP代码文件必须只能使用无BOM的UTF-8。* 代码缩进必须使用4个空格,而不是tab按键。* 类名必须使用大驼峰式(首字母大写)声明。* 类中常量必须使用全大写带下划线方式声明。* 方法名称必须使用小驼峰式(首字母小写)声明 。* 属性名称必须使用小驼峰式(首字母小写)声明。* 如果是私有属性名,必须使用下划线开始。* 使用elseif代替else if。2、变量与数据类型
* 所有的数据类型和变量均应该小写。包括true,false,null和array3、字符串
如果字符串中不包括变量或单引号时,请使用单引号。$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统一文件管理 附加功能模块前缀
新闻热点
疑难解答
图片精选