Yii是一個基于組件、用于開發(fā)大型Web應(yīng)用的高性能PHP框架,它提供了當(dāng)今Web 2.0應(yīng)用開發(fā)所需要的大部分功能,是ji具開發(fā)效率的PHP框架之一。
Yii 2.0版是一個完全重寫的版本,采用了****的技術(shù)和協(xié)議!禮ii2框架從入門到精通》以框架設(shè)計(jì)的高度,從源代碼級別剖析了Yii2框架的工作機(jī)制!禮ii2框架從入門到精通》共分為15章,其內(nèi)容涵蓋了PHP框架的概念、Yii2框架的工作流程、布局的概念及作用、模塊的概念及作用、ActiveRecord模型的原理和作用、ActiveRecord模型的查詢方法、小部件的概念及作用、小部件ActiveForm的作用以及調(diào)用方法、模型驗(yàn)證的概念及作用、Yii2框架中的AJAX驗(yàn)證、與用戶登錄相關(guān)的內(nèi)容、Yii2框架中基于角色的訪問控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)、Memcached緩存在Yii2框架中的使用、日志在Yii2框架中的實(shí)現(xiàn),以及Yii2框架中URL管理組件。此外,《Yii2框架從入門到精通》還包含3個附錄,分別介紹了HTTP狀態(tài)消息、Yii2相關(guān)PHP語法介紹以及依賴管理工具Composer的內(nèi)容。
《Yii2框架從入門到精通》適合Web開發(fā)人員,以及有一定的PHP開發(fā)基礎(chǔ)進(jìn)而希望通過學(xué)習(xí)使用框架來提升開發(fā)能力的讀者閱讀。
Yii是一個基于組件、用于開發(fā)大型Web應(yīng)用的高性能PHP框架,它提供了當(dāng)今Web 2.0應(yīng)用開發(fā) 所需要的大部分功能。Yii2是一個完全重寫的版本,采用了****的技術(shù)和協(xié)議。本書站在框架設(shè)計(jì)的 高度,從源代碼級別剖析了Yii2框架的工作機(jī)制。
本書包含內(nèi)容:
初識PHP框架技術(shù);
Yii2框架基礎(chǔ);
布局;
模塊;
ActiveRecord模型;
ActiveRecord模型類的查詢方法;
Widget(小部件);
前端資源管理;
ActiveRecord模型驗(yàn)證;
AJAX驗(yàn)證;
用戶登錄;
基于角色的訪問控制;
Yii2框架中的Memcached緩存應(yīng)用;
日志;
URL重寫;
HTTP狀態(tài)消息;
Yii 2.0相關(guān)PHP語法介紹;
依賴管理工具Compose。
讀者可以觀看本書作者劉琨老師的Yii2付費(fèi)課程,配合《Yii2框架從入門到精通》學(xué)習(xí)Yii2框架技術(shù)。
劉琨 51CTO學(xué)院講師 ,石家莊鐵道大學(xué)碩士,技術(shù)顧問,現(xiàn)就職于河北師范大學(xué)匯華學(xué)院。他擁有十多年軟件開發(fā)和管理工作經(jīng)驗(yàn)、八年教學(xué)經(jīng)驗(yàn)以及兩年海外工作經(jīng)驗(yàn),曾任北京某科技股份有限公司技術(shù)總監(jiān)、項(xiàng)目經(jīng)理等職務(wù),具有扎實(shí)的技術(shù)功底,近年來從事移動互聯(lián)網(wǎng)開發(fā)及物聯(lián)網(wǎng)研究。
第 1章 初識PHP框架技術(shù) 1
1.1 PHP語言發(fā)展歷史及其適合的應(yīng)用領(lǐng)域 1
1.2 什么是框架 3
1.3 為什么要用框架開發(fā) 4
1.4 自定義框架 4
1.4.1 MVC框架模式的實(shí)現(xiàn) 4
1.4.2 入口文件 11
1.4.3 應(yīng)用(前端控制器) 15
1.4.4 從自定義框架到Y(jié)ii2框架 20
1.5 小結(jié) 22
第 2章 Yii2框架基礎(chǔ) 23
2.1 Yii簡介 23
2.1.1 什么是Yii框架技術(shù) 23
2.1.2 Yii2的優(yōu)點(diǎn) 24
2.1.3 應(yīng)用案例 25
2.2 下載Yii2 27
2.3 運(yùn)行應(yīng)用 30
2.4 輸出“Hello World” 31
2.5 入口文件 33
2.6 應(yīng)用主體 33
2.7 MVC框架模式 36
2.8 Yii2框架中的控制器 36
2.9 Yii2框架中的視圖 37
※2.10 項(xiàng)目實(shí)現(xiàn)迭代一:渲染首頁、列表頁和內(nèi)容頁視圖 39
2.11 小結(jié) 41
第3章 布局 42
3.1 布局概述 42
※3.2 項(xiàng)目實(shí)現(xiàn)迭代二:創(chuàng)建并使用布局渲染首頁視圖 43
3.3 Controller類的render()方法執(zhí)行流程 45
3.4 應(yīng)用級布局 47
3.5 嵌套布局 48
※3.6 項(xiàng)目實(shí)現(xiàn)迭代三:使用嵌套布局渲染“新聞中心”列表頁 49
3.7 視圖文件的存儲路徑 53
3.8 小結(jié) 54
第4章 模塊 55
4.1 模塊概述 55
4.2 使用Gii創(chuàng)建模塊 57
4.3 模塊中的資源文件 59
※4.4 項(xiàng)目實(shí)現(xiàn)迭代四:文章管理 62
4.5 小結(jié) 64
第5章 ActiveRecord模型 65
5.1 ActiveRecord模型概述 65
5.2 通過CRUD(增查改刪)操作理解ActiveRecord類 66
5.2.1 文章表(ds_article) 66
5.2.2 在配置文件中初始化數(shù)據(jù)庫連接 67
5.2.3 創(chuàng)建ActiveRecord模型 68
5.2.4 通過查詢操作理解ActiveRecord類 69
5.2.5 通過插入和更新操作理解ActiveRecord類 73
5.2.6 通過刪除操作理解ActiveRecord類 74
※5.3 項(xiàng)目實(shí)現(xiàn)迭代五:首頁“行業(yè)百科”數(shù)據(jù)查詢 75
※5.4 項(xiàng)目實(shí)現(xiàn)迭代六:在“文章添加”頁面實(shí)現(xiàn)數(shù)據(jù)插入 77
5.5 小結(jié) 78
第6章 ActiveRecord模型類的查詢方法 79
6.1 ActiveRecord模型類的find()方法與查詢執(zhí)行流程 79
6.2 查詢方法find()實(shí)例 80
6.2.1 實(shí)現(xiàn)帶有邏輯運(yùn)算符和比較運(yùn)算符的查詢 81
6.2.2 實(shí)現(xiàn)范圍比較查詢 81
6.2.3 實(shí)現(xiàn)模糊查詢 82
6.3 查詢構(gòu)建類ActiveQuery 82
6.3.1 ActiveQuery成員屬性簡介 83
6.3.2 ActiveQuery成員方法簡介 84
6.3.3 Query類where()成員方法簡介 85
6.4 關(guān)聯(lián)查詢 87
※6.5 項(xiàng)目實(shí)現(xiàn)迭代七:完成首頁中的數(shù)據(jù)填充 90
6.5.1 實(shí)現(xiàn)幻燈片切換 90
6.5.2 實(shí)現(xiàn)成功案例 92
6.5.3 實(shí)現(xiàn)其他欄目的文章內(nèi)容查詢 94
6.6 小結(jié) 102
第7章 Widget(小部件) 103
7.1 調(diào)用小部件的兩種方式 103
7.1.1 調(diào)用widget()方法使用小部件DatePicker 103
7.1.2 調(diào)用begin()和end()方法使用小部件ActiveForm 106
※7.2 項(xiàng)目實(shí)現(xiàn)迭代八:使用ActiveForm小部件替換添加文章視圖
頁面中的HTML表單標(biāo)簽 108
7.2.1 調(diào)用小部件ActiveForm 108
7.2.2 “文章標(biāo)題”文本輸入框 109
7.2.3 “文章欄目”下拉列表框 115
7.2.4 “文章圖片”上傳文件輸入框 118
7.2.5 “內(nèi)容”文本輸入域 119
7.3 自定義小部件 121
7.3.1 繼承Widget 121
7.3.2 自定義小部件的MVC結(jié)構(gòu) 125
※7.4 項(xiàng)目實(shí)現(xiàn)迭代九:自定義首頁幻燈片小部件 128
※7.5 項(xiàng)目實(shí)現(xiàn)迭代十:分頁顯示列表頁 131
7.5.1 分頁組件Pagination 131
7.5.2 新聞中心列表頁實(shí)現(xiàn)數(shù)據(jù)填充 135
7.5.3 分頁的超鏈接列表小部件LinkPager 137
7.6 小結(jié) 139
第8章 前端資源管理 140
8.1 初識資源包類 141
8.2 Yii2框架資源管理代碼分析 143
8.2.1 視圖中注冊資源包類 143
8.2.2 注冊資源文件 145
8.2.3 輸出緩沖區(qū)的數(shù)據(jù) 148
8.3 AssetBundle類的成員屬性 149
※8.4 項(xiàng)目實(shí)現(xiàn)迭代十一:本書配套項(xiàng)目實(shí)現(xiàn)前端資源管理 151
8.4.1 實(shí)現(xiàn)首頁前端資源管理 151
8.4.2 實(shí)現(xiàn)新聞中心列表頁前端資源管理 154
8.5 小結(jié) 157
第9章 ActiveRecord模型驗(yàn)證 158
9.1 模型中編寫驗(yàn)證規(guī)則 159
9.2 控制器中安全賦值 161
9.3 控制器中觸發(fā)驗(yàn)證 163
9.4 視圖中提取錯誤信息 164
※9.5 項(xiàng)目實(shí)現(xiàn)迭代十二:完成“添加文章”頁面中的模型驗(yàn)證 165
9.6 小結(jié) 169
第 10章 AJAX驗(yàn)證 170
10.1 AJAX簡介 170
10.2 傳統(tǒng)的JavaScript實(shí)現(xiàn)AJAX驗(yàn)證 171
10.2.1 創(chuàng)建AJAX引擎XMLHttpRequest對象 173
10.2.2 創(chuàng)建HTTP請求 174
10.2.3 設(shè)置響應(yīng)HTTP請求狀態(tài)變化的方法 175
10.2.4 設(shè)置獲取服務(wù)器返回?cái)?shù)據(jù)的語句 176
10.2.5 發(fā)送HTTP請求 177
10.3 jQuery實(shí)現(xiàn)AJAX驗(yàn)證 177
※10.4 項(xiàng)目實(shí)現(xiàn)迭代十三:完成“添加用戶”頁面的AJAX驗(yàn)證 179
10.5 小結(jié) 184
第 11章 用戶登錄 185
11.1 表單模型 185
11.2 客戶端驗(yàn)證 187
11.2.1 ActiveForm實(shí)現(xiàn)客戶端驗(yàn)證代碼分析 187
※11.2.2 項(xiàng)目實(shí)現(xiàn)迭代十四:完成登錄頁面的客戶端驗(yàn)證 191
11.3 模型中的自定義方法作為rules()驗(yàn)證器 193
11.4 用于驗(yàn)證用戶名和密碼的身份類UserIdentity 197
※11.5 項(xiàng)目實(shí)現(xiàn)迭代十五:完成用戶登錄 200
11.6 保存用戶登錄狀態(tài)的yii\\web\\User類 204
11.7 小結(jié) 207
第 12章 基于角色的訪問控制 208
12.1 訪問控制技術(shù)綜述 208
12.2 RBAC簡介 210
12.3 RBAC需求分析及功能概述 210
※12.4 項(xiàng)目實(shí)現(xiàn)迭代十六:最簡方式實(shí)現(xiàn)RBAC 211
12.4.1 數(shù)據(jù)庫設(shè)計(jì) 211
12.4.2 用戶管理 213
12.4.3 角色管理 214
12.4.4 權(quán)限管理 216
12.4.5 用戶—角色配置管理 222
12.4.6 角色—權(quán)限配置管理 223
※12.5 項(xiàng)目實(shí)現(xiàn)迭代十七:使用yii\\rbac\\DbManager實(shí)現(xiàn) RBAC 224
12.5.1 基本概念 224
12.5.2 用戶管理 229
12.5.3 角色管理 234
12.5.4 權(quán)限管理 239
12.5.5 權(quán)限管理系統(tǒng)驗(yàn)證 242
※12.6 項(xiàng)目實(shí)現(xiàn)迭代十八:使用yii2-admin擴(kuò)展實(shí)現(xiàn)RBAC 243
12.6.1 配置 243
12.6.2 使用的數(shù)據(jù)庫表 245
12.6.3 路由列表 246
12.6.4 角色列表 249
12.6.5 用戶列表 249
12.6.6 菜單列表 251
12.6.7 集成AdminLTE后臺主題及菜單展示 253
12.6.8 基于存取控制過濾器(ACF)的用戶登錄頁面 255
12.7 小結(jié) 257
第 13章 Yii2框架中的Memcached緩存應(yīng)用 258
13.1 初識Memcached 258
13.2 Memcached在Web中的應(yīng)用 259
13.2.1 減小數(shù)據(jù)庫查詢的壓力 260
13.2.2 對海量數(shù)據(jù)的處理 260
13.3 Memcached的安裝及管理 261
13.3.1 安裝Memcached軟件 262
13.3.2 Memcached服務(wù)器的管理 263
13.4 使用Telnet作為Memcached的客戶端管理 263
13.4.1 Telnet客戶端連接Memcached服務(wù)器 264
13.4.2 連接Memcached服務(wù)器 264
13.4.3 基本的Memcached客戶端命令 265
13.4.4 查看當(dāng)前Memcached服務(wù)器的運(yùn)行狀態(tài)信息 265
13.4.5 數(shù)據(jù)管理指令 267
13.5 PHP的Memcached客戶端擴(kuò)展函數(shù)庫 269
13.5.1 安裝php_memcache.dll擴(kuò)展函數(shù)庫 269
13.5.2 相關(guān)擴(kuò)展方法 272
13.5.3 實(shí)例應(yīng)用 279
13.6 Yii2框架MemCache緩存組件 281
13.6.1 配置使用MemCache緩存組件 281
13.6.2 緩存API 282
13.6.3 MemCache實(shí)例 284
13.7 緩存依賴 286
※項(xiàng)目實(shí)現(xiàn)迭代十九:產(chǎn)品中心內(nèi)容頁中應(yīng)用緩存依賴 286
13.8 片段緩存 288
13.8.1 片段緩存的起始和結(jié)束 289
13.8.2 小部件FragmentCache類部分構(gòu)成 290
※13.8.3 項(xiàng)目實(shí)現(xiàn)迭代二十:產(chǎn)品中心欄目實(shí)現(xiàn)片段緩存 292
13.9 頁面緩存 294
※項(xiàng)目實(shí)現(xiàn)迭代二十一:“關(guān)于我們”內(nèi)容頁中應(yīng)用頁面緩存 295
13.10 局部無緩存 297
13.11 Yii2框架其他緩存組件介紹 297
13.12 小結(jié) 299
第 14章 日志 300
14.1 Apache服務(wù)器的日志 300
14.1.1 訪問日志的格式 301
14.1.2 錯誤日志的格式 305
14.1.3 日志的定制 306
14.2 PHP日志 309
14.2.1 PHP配置文件“php.ini” 309
14.2.2 通過配置文件生成日志 310
14.2.3 通過方法記錄日志到指定文件 311
14.2.4 錯誤信息記錄到操作系統(tǒng)的日志里 311
14.3 Yii2框架的日志記錄 313
14.3.1 記錄日志消息 313
14.3.2 在配置文件中設(shè)置日志保存路徑目標(biāo) 315
14.4 小結(jié) 317
第 15章 URL重寫 318
15.1 關(guān)于URL 318
15.1.1 URL組成 318
15.1.2 良好的URL設(shè)計(jì)原則 319
15.2 初步認(rèn)識Apache重寫模塊 320
15.3 Yii2框架的URL管理 324
15.3.1 創(chuàng)建URL 324
15.3.2 解析URL 328
15.3.3 URL模式 330
15.3.4 實(shí)現(xiàn)偽靜態(tài) 331
15.3.5 帶有正則表達(dá)式的URL規(guī)則 332
15.3.6 一個規(guī)則匹配多個路由 334
15.4 隱藏入口文件index.php 336
15.4.1 再次使用Apache重寫模塊 336
15.4.2 RewriteCond指令詳解 337
15.4.3 Yii2框架創(chuàng)建URL時隱藏入口文件 343
15.5 小結(jié) 345
附錄A HTTP狀態(tài)消息 346
附錄B Yii2相關(guān)PHP語法介紹 349
B.1 命名空間 349
B.1.1 命名空間的基本應(yīng)用 350
B.1.2 命名空間的子空間和公共空間 351
B.1.3 命名空間中的名稱和術(shù)語 352
B.1.4 別名和導(dǎo)入 353
B.2 PHP的輸出緩沖控制 355
附錄C 依賴管理工具Composer 359
C.1 安裝Composer 359
C.2 安裝Yii2 362
C.3 安裝擴(kuò)展組件yii2-widget-datepicker 369
C.4 安裝擴(kuò)展組件yii2-admin 370
C.5 安裝擴(kuò)展組件yii2-adminlte-asset 373