## 設計模式
> * 單一入口;
> * 根目錄只處理靜態資源和入口;
> * 目錄權限(777只允許存在public和retime目錄)
> * **強制遵循MVC或者MVSC模式(不容許脫離此結構)**
> * 模塊化時應當盡量獨立,切勿太過依賴
> * 切勿過度封裝,應當盡量還原本質
> * 應當遵循面向對象思想,切勿搞流水戰;
> * 盡可能使用:工廠模式,管道模式,鏈式,單例模式,
> * 打開必須要有關閉(比如打開文件)
> * 盡可能在定義變量,返回值之前知道返回類型(遵循強類型的思想)
> * 流程應當清晰可見,而不是強制美化,縮簡代碼;這樣只會起反作用
> * 大多數情況下你所寫的應當是開放式(不指:private、public、protected)的,而非私有的
> * **非必要情況下盡量不使用 $_GET $_POST 之類的全局用戶輸入變量,使用時必須進行安全校驗**
> * **嚴禁直接使用include和require引入文件,如有需要請使用composer引入
,或者命名空間**
> * **命名空間遵循自動加載標準,具體請自行百度,保持目錄跟命名空間是匹配的**
> * 資源回收機制
## 數據庫
> * 數據表的設計大多數時候應該是橫向的,而非縱向的;縱向表內容不能超過1000;
> * 數據表的名字應該是清晰可見的,分組明確的,
> * **統一使用 utf8mb4 編碼**;
> * **統一使用盡可能的使用 InnoDB 引擎**;
> * 設計結構盡可能遵循函數設計規范,一表一事,而不是不斷堆砌字段,
> * join 不能超過 **5** 個表
> * **必須過濾查詢字段,不能使用 * 代替,除非這是確定的**
> * **列表查詢應當習慣性的加上排序,提高用戶體驗度**
> * **應該盡可能 放棄 varchar 而使用 char**
> * 減少大內容存儲字段
> * **時間必須使用 int(10) 儲存**
> * 適當考慮位元算存儲方式
> * **減少使用 通配符 、 IN 及 子查詢**
> * 開發結束后,必須針對SQL查詢語句的條件語句部分(where)添加索引,須匹配多個條件的應該使用聚合索引。
索引的組成應由左至右匹配條件語句的順序。
> * 嚴禁盲目添加索引,避免減慢數據插入的速度、增大占用空間及減慢查詢速度。
> * 數據庫的設計必須符合三個范式(極端要求常用高速時考慮單獨設置記錄表除外)
> * 能力不足的情況下盡量不要去搞觸發器
> * **每個字段及表必須注明作用**;
## 數據庫三個范式(具體請自行百度)
> * 當關系模式R的所有屬性都不能在分解為更基本的數據單位時,稱R是滿足第一范式的,簡記為1NF。滿足第一范式是關系模式規范化的最低要
求,否則,將有很多基本操作在這樣的關系模式中實現不了。
> * 如果關系模式R滿足第一范式,并且R的所有非主屬性都完全依賴于R的每一個候選關鍵屬性,稱R滿足第二范式,簡記為2NF。
> * 設R是一個滿足第一范式條件的關系模式,X是R的任意屬性集,如果X非傳遞依賴于R的任意一個候選關鍵字,稱R滿足第三范式,簡記為3NF.
- 序言
- 基礎
- 安裝
- 規范
- 目錄
- 配置
- 架構
- 入口文件
- 偽靜態配置
- Facade
- 使用行為
- 路由
- 路由定義
- 控制器
- 定義控制器
- 數據庫
- 連接數據庫
- 鏈式操作
- where
- builder
- field
- limit
- page
- order
- group
- find
- select
- value
- count
- sum
- average
- maximum
- minimum
- column
- update
- insert
- delete
- begin
- rollback
- commit
- left
- right
- inner
- for_update
- shared_lock
- cache
- 構造器
- 查詢
- 添加
- 更新
- 刪除
- 模型
- 創建模型
- 自動時間戳
- 模型關聯
- 模型事件
- 數據轉換
- 軟刪除
- 視圖
- 模板
- 日志
- 調試
- 驗證
- CLI命令行
- 標準
- 命名規范
- 語法規范
- 注釋規范
- 設計模式
- 開發提示
- 數據字典
- Markdown使用文檔
- volt模板引擎
- 簡介
- 注釋
- 變量
- 過濾器
- 流程控制
- 循環語句for
- 條件判斷語句if
- 表達式及運算符
- 函數