1. 【**强制**】大括号的使用约定。如果是大括号内为空,则简洁地写成{}即可,不需要换行;如果是非空代码块则:
1) 左大括号前不换行 ;
2) 左大括号后换行;
3) 右大括号前换行;
4) 右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行;
2. 【强制】 左小括号和字符之间不出现空格;同样,右小括号和字符之间也不出现空格;
正例:if ($a == $b)
反例:if (空格 $a == $b 空格)
3. 【强制】if/foreach/while/switch 等保留字与括号之间都必须加空格;
4. 【强制】任何二元、三元运算符,操作符的左右两边都需要加一个空格;
说明:运算符包括赋值运算符=、逻辑运算符&&、加减乘除符号等;
5. 【强制】采用 4 个空格缩进,禁止使用 tab 字符;
说明:如果使用 tab 缩进,必须设置 1 个 tab 为 4 个空格。IDEA 设置 tab 为 4 个空格时,
请勿勾选 Use tab character;而在 eclipse 中,必须勾选 insert spaces for tabs。phpstorm设置tab为4个空格缩进的方法:File -> Setting -> Code Style -> PHP,右侧不要勾选 "Use tab character";
6. 【强制】函数、方法的各个参数之间,逗号(",")后面有一个空格;
7. 【**强制**】命名空间(namespace)和导入(use)声明
1)命名空间(namespace)的声明后面必须有一行空行;
2)所有的导入(use)声明必须放在命名空间(namespace)声明的下面;
3)一句声明中,必须只有一个导入(use)关键字;
4)在导入(use)声明代码块后面必须有一行空行;
8. 【推荐】数组如果有超过2个键值对时,请换行
正例
```
$where = [
'id' => $id,
'username' => $name
];
```
1. 【推荐】只一行书写一句代码,适当的使用空行可以增加阅读性;
## 本章参考正例
~~~
<?php
/**
* Created by PhpStorm.
* User: ChenDasheng
* Date: 2019/9/12
* Time: 14:44
*/
namespace app\admin\controller;
use app\admin\model\Action as ActionModel;
/**
* 行为管理控制器
* @package app\admin\controller
*/
class Action extends Base
{
/**
* 行为数据列表展示
* @author ChenDasheng
* @created 2019/10/23
*/
public function index()
{
$where = [
'sex' => 0,
'age' => 25
];
// 数据列表
$data = ActionModel::where($where)->order('id desc')->paginate();
$this->assign('data', $data);
return $this->fetch();
}
/**
* 新增行为
* @author ChenDasheng
* @created 2019/10/23
*/
public function add()
{
// 保存数据
if ($this->request->isPost()) {
$data = $this->request->post();
// 验证
$result = $this->validate($data, 'Action.add');
// 验证失败 输出错误信息
if (true !== $result) {
$this->error($result);
}
if (ActionModel::create($data)) {
// 记录行为
action_log('admin_action_add', 'admin_action', $id, UID, $data['name']);
$this->success('新增成功');
} else {
$this->error('新增失败');
}
}
return $this->fetch();
}
/**
* 编辑行为
* @param int $id 行为id
* @author ChenDasheng
* @created 2019/10/23
* @editor 潘阳
* @updated 2019.03.30
* @return mixed
*/
public function edit($id = null)
{
if ($id === null) {
$this->error('缺少参数');
}
// 保存数据
if ($this->request->isPost()) {
$data = $this->request->post();
// 验证
$result = $this->validate($data, 'Action.update');
// 验证失败 输出错误信息
if (true !== $result) {
$this->error($result);
}
if (ActionModel::update($data)) {
// 记录行为
action_log('admin_action_edit', 'admin_action', $id, UID, $data['name']);
$this->success('编辑成功', cookie('__forward__'));
} else {
$this->error('编辑失败');
}
}
// 获取数据
$info = ActionModel::where('id', $id)->find();
$this->assign('info',$info);
return $this->fetch();
}
}
~~~