PHP代码规范

编码规范

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

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

2、变量与数据类型

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

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
}
类中常量必须使用全大写带下划线方式声明。例如:
<?php
class Foo
{
    const VERSION = '1.0';
    const DATE_APPROVED = '2012-06-01';
}
属性
* 当声明公共类成员时,要特别明确关键字public。
* 公有和保护变量应该在任何方法声明前被声明。私有变量可以在类顶部声明,但也
* 可添加在关联的类方法字块使用之前。
* 类中的属性声明顺序应该是从公有、保护到私有。
* 为了增强可读性,属性声明间没有空行且在属性和方法声明间有两个空⾏行。
* 私有变量应该像如此命名$_varName。
* 公共类成员和独立变量应该这样首字母小写命名$camelCase。
* 使用描述命名。变量最好不要使用$i$j来命名。

例如:
<?php
class Foo
{
    public $publicProp;
    protected $protectedProp;
    private $_privateProp;
}
方法
* 函数和方法应该命名使用首字母小写的小驼峰式。
* 名字应该体现函数所实现的功能描述。
* 类方法中应该经常可见private,protectedpublic的修饰。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统一文件管理
		附加功能模块前缀


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值