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();
}
}
~~~