ThinkPHP 5 實戰
內容描述
本書針對ThinkPHP 5進行編寫,內容由淺入深,由局部到整體,以實用性為目標,系統地介紹ThinkPHP框架的相關技術及其在Web開發中的應用。 本書分為18章,內容包括開發環境搭建、配置系統、路由、控制器、數據庫操作層、模型層、視圖、驗證器、緩存、Session和Cookie、命令行應用、開發調試、服務器部署、數據庫設計、多人博客系統開發、圖書管理系統開發、論壇系統開發與微信小程序商城系統開發。如果讀者在閱讀本書時遇到問題,還可以到Github上提出問題獲得解答。 本書適合ThinkPHP初學者、PHP應用開發人員,也適合作為高等院校和培訓學校電腦相關專業的師生教學參考。
目錄大綱
第1章 搭建開發環境 1
1.1 下載開發工具/軟件 1
1.2 HelloWorld 1
第2章 配置系統 5
2.1 配置的路徑 5
2.2 配置的格式 5
2.3 配置的加載順序 6
2.4 配置的讀寫與示例 6
2.5 小結 8
第3章 路由 9
3.1 路由模式 9
3.1.1 普通模式 9
3.1.2 混合模式 10
3.1.3 強制模式 10
3.2 路由定義 10
3.2.1 編碼定義 10
3.2.2 配置定義 11
3.3 路由條件 11
3.4 路由地址 13
3.4.1 路由到模塊/控制器 13
3.4.2 重定向 13
3.4.3 路由到控制器方法 14
3.4.4 路由到類靜態方法 14
3.4.5 路由到閉包 14
3.5 Restful路由 14
3.5.1 普通資源 14
3.5.2 嵌套資源 15
3.6 路由分組 16
3.7 全局404路由 16
3.8 路由綁定 17
3.9 URL生成 17
3.10 小結 17
第4章 控制器 18
4.1 定義 18
4.2 輸出響應 18
4.3 配置響應格式 19
4.4 初始化操作和前置操作 19
4.5 跳轉和重定向 20
4.6 控制器嵌套 20
4.7 獲取請求詳情 20
4.8 獲取輸入數據 21
4.8.1 數據過濾方法 22
4.8.2 獲取部分數據 22
4.8.3 排除部分數據 22
4.8.4 數據類型處理 22
4.9 參數綁定 23
4.10 頁面緩存 23
4.11 小結 23
第5章 數據庫操作層 24
5.1 數據庫配置 24
5.2 基本操作 26
5.3 使用查詢構造器 27
5.3.1 添加數據 27
5.3.2 更新數據 27
5.3.3 查詢數據 28
5.3.4 刪除數據 28
5.4 查詢語法 29
5.4.1 查詢表達式和查詢方法 29
5.4.2 查詢表達式示例 30
5.5 連貫操作 31
5.6 連貫操作示例 32
5.6.1 table 32
5.6.2 alias 33
5.6.3 field 33
5.6.4 order/orderRaw 33
5.6.5 limit 34
5.6.6 group 34
5.6.7 having 34
5.6.8 join 34
5.6.9 union 35
5.6.10 distinct 35
5.6.11 page 35
5.6.12 lock 35
5.6.13 cache 36
5.6.14 relation 36
5.7 查詢事件與SQL調試 36
5.7.1 查詢事件 36
5.7.2 SQL調試 37
5.7.3 事務 37
5.7.4 調用存儲過程或函數 37
第6章 模型層 38
6.1 模型定義 38
6.2 插入數據 38
6.3 更新數據 39
6.4 批量更新(只支持主鍵) 39
6.5 刪除數據 40
6.6 查詢數據 40
6.7 批量查詢 40
6.8 聚合查詢 41
6.9 get/set 41
6.10 自動時間戳處理 42
6.11 只讀字段 43
6.12 軟刪除 4
6.13 自動完成 44
6.14 數據類型自動轉換 45
6.15 快捷查詢 46
6.16 全局查詢條件 46
6.17 模型事件 47
6.18 關聯模型 48
6.18.1 一對一關聯 48
6.18.2 一對一關聯模型數據操作 48
6.18.3 一對一從屬關聯 49
6.18.4 一對多關聯 49
6.18.5 一對多關聯模型數據操作 50
6.18.6 一對多從屬關聯 50
6.18.7 多對多關聯 50
6.18.8 多對多模型數據操作 51
6.18.9 多對多從屬關聯 52
6.18.10 不定類型關聯模型 52
6.18.11 關聯數據一次查詢優化 54
第7章 視圖 56
7.1 渲染方法 56
7.2 模板引擎配置 56
7.3 模板賦值與渲染 57
7.4 Think模板引擎語法 57
7.4.1 變量輸出 58
7.4.2 模板內置變量 58
7.4.3 默認值 58
7.4.4 使用函數 59
7.4.5 算術運算符 59
7.4.6 三目運算符 59
7.4.7 不解析輸出 60
7.4.8 佈局文件 60
7.4.9 模板包含 62
7.4.10 被包含模板使用變量 63
7.5 模板繼承 64
7.5.1 繼承語法 64
7.5.2 繼承模板合併 65
7.5.3 模板繼承注意事項 65
7.6 模板標籤庫 66
7.6.1 導入標籤庫 66
7.6.2 使用標籤庫 66
7.6.3 標籤預加載 66
7.6.4 內置標籤 67
7.6.5 內置標籤示例 68
7.6.6 標籤嵌套 72
第8章 驗證器 73
8.1 驗證器類 73
8.2 驗證規則 74
8.3 自定義規則 76
8.4 控制器/模型驗證 77
8.5 便捷驗證 78
8.6 小結 78
第9章 緩存 79
9.1 緩存配置 79
9.2 緩存操作 79
第10章 Session和Cookie 81
10.1 Session和Cookie區別 81
10.1.1 Session 81
10.1.2 Cookie 81
10.2 Session配置 81
10.3 Session操作 82
10.4 Cookie配置 82
10.5 Cookie操作 83
第11章 命令行應用 84
第12章 開發調試 86
12.1 調試模式的開啟和關閉 86
12.2 變量調試 87
12.3 執行流程 87
12.4 性能調試 88
12.5 異常 88
12.5.1 異常配置 88
12.5.2 異常處理器 89
12.6 異常拋出 89
第13章 服務器部署 91
13.1 apt-get常用命令 91
13.2 安裝步驟 92
13.3 配置文件路徑 92
13.4 服務管理命令 92
13.5 配置默認站點 92
第14章 數據庫設計 94
14.1 設計原則 94
14.2 設計工具 94
第15章 多人博客系統開發 100
15.1 項目目的 100
15.2 需求分析 100
15.3 功能分析 101
15.4 數據庫設計 101
15.4.1 數據表模型圖 101
15.4.2 數據庫關係說明 102
15.4.3 數據庫字典 102
15.5 模塊設計 104
15.5.1 網站前台 105
15.5.2 用戶管理端 107
15.6 效果展示 107
15.7 代碼示例 110
15.7.1 用戶註冊 110
15.7.2 用戶登錄 112
15.7.3 文章詳情 113
15.7.4 發表文章 115
15.7.5 接入統計系統 117
15.8 項目總結 118
15.9 項目完整代碼 118
第16章 圖書管理系統開發 119
16.1 項目目的 119
16.2 MVC+Repository+Service介紹 119
16.3 需求分析 120
16.4 功能分析 120
16.5 模塊設計 120
16.6 數據庫設計 121
16.6.1 數據庫模型關係 121
16.6.2 數據庫關係說明 122
16.6.3 數據庫字典 123
16.7 核心業務流程 125
16.8 效果展示 125
16.9 代碼示例 128
16.10 項目總結 137
16.11 項目完整代碼 137
第17章 論壇系統開發 138
17.1 項目目的 138
17.2 需求分析 138
17.3 功能分析 139
17.4 模塊設計 139
17.5 數據庫設計 139
17.5.1 數據庫表關係 140
17.5.2 數據庫表關係說明 141
17.5.3 數據庫字典 141
17.6 效果展示 145
17.7 代碼示例 152
17.7.1 用戶註冊 152
17.7.2 新增版塊 153
17.7.3 編輯版塊 153
17.7.4 模型基類 154
17.7.5 主題模型類 155
17.7.6 倉儲基類 158
17.7.7 主題倉儲類 160
17.7.8 用戶業務類 164
17.7.9 自定義配置 168
17.7.10 讀取自定義配置 168
17.7.11 免登錄Action定義 169
17.7.12 免登錄Action配置 169
17.7.13 用戶註冊(顯示驗證碼) 171
17.7.14 用戶註冊(檢測驗證碼) 172
17.8 項目總結 173
17.9 項目完整代碼 173
第18章 微信小程序商城系統開發 174
18.1 項目目的 174
18.2 需求分析 174
18.3 功能分析 174
18.4 模塊設計 175
18.5 數據庫設計 175
18.5.1 數據庫關係 175
18.5.2 數據庫關係說明 176
18.5.3 數據庫字典 176
18.6 效果展示 178
18.7 代碼示例 184
18.8 項目總結 189
18.9 項目完整代碼 189
後記 190