Yii是一個(gè)基于組件、用于開(kāi)發(fā)大型Web應(yīng)用的高性能PHP框架,它提供了當(dāng)今Web 2.0應(yīng)用開(kāi)發(fā)所需要的大部分功能,是ji具開(kāi)發(fā)效率的PHP框架之一。
Yii 2.0版是一個(gè)完全重寫的版本,采用了****的技術(shù)和協(xié)議。《Yii2框架從入門到精通》以框架設(shè)計(jì)的高度,從源代碼級(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框架中基于角色的訪問(wèn)控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)、Memcached緩存在Yii2框架中的使用、日志在Yii2框架中的實(shí)現(xiàn),以及Yii2框架中URL管理組件。此外,《Yii2框架從入門到精通》還包含3個(gè)附錄,分別介紹了HTTP狀態(tài)消息、Yii2相關(guān)PHP語(yǔ)法介紹以及依賴管理工具Composer的內(nèi)容。
《Yii2框架從入門到精通》適合Web開(kāi)發(fā)人員,以及有一定的PHP開(kāi)發(fā)基礎(chǔ)進(jìn)而希望通過(guò)學(xué)習(xí)使用框架來(lái)提升開(kāi)發(fā)能力的讀者閱讀。
Yii是一個(gè)基于組件、用于開(kāi)發(fā)大型Web應(yīng)用的高性能PHP框架,它提供了當(dāng)今Web 2.0應(yīng)用開(kāi)發(fā) 所需要的大部分功能。Yii2是一個(gè)完全重寫的版本,采用了****的技術(shù)和協(xié)議。本書(shū)站在框架設(shè)計(jì)的 高度,從源代碼級(jí)別剖析了Yii2框架的工作機(jī)制。
本書(shū)包含內(nèi)容:
初識(shí)PHP框架技術(shù);
Yii2框架基礎(chǔ);
布局;
模塊;
ActiveRecord模型;
ActiveRecord模型類的查詢方法;
Widget(小部件);
前端資源管理;
ActiveRecord模型驗(yàn)證;
AJAX驗(yàn)證;
用戶登錄;
基于角色的訪問(wèn)控制;
Yii2框架中的Memcached緩存應(yīng)用;
日志;
URL重寫;
HTTP狀態(tài)消息;
Yii 2.0相關(guān)PHP語(yǔ)法介紹;
依賴管理工具Compose。
讀者可以觀看本書(shū)作者劉琨老師的Yii2付費(fèi)課程,配合《Yii2框架從入門到精通》學(xué)習(xí)Yii2框架技術(shù)。
劉琨 51CTO學(xué)院講師 ,石家莊鐵道大學(xué)碩士,技術(shù)顧問(wèn),現(xiàn)就職于河北師范大學(xué)匯華學(xué)院。他擁有十多年軟件開(kāi)發(fā)和管理工作經(jīng)驗(yàn)、八年教學(xué)經(jīng)驗(yàn)以及兩年海外工作經(jīng)驗(yàn),曾任北京某科技股份有限公司技術(shù)總監(jiān)、項(xiàng)目經(jīng)理等職務(wù),具有扎實(shí)的技術(shù)功底,近年來(lái)從事移動(dòng)互聯(lián)網(wǎng)開(kāi)發(fā)及物聯(lián)網(wǎng)研究。
第 1章 初識(shí)PHP框架技術(shù) 1
1.1 PHP語(yǔ)言發(fā)展歷史及其適合的應(yīng)用領(lǐng)域 1
1.2 什么是框架 3
1.3 為什么要用框架開(kāi)發(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簡(jiǎn)介 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)迭代一:渲染首頁(yè)、列表頁(yè)和內(nèi)容頁(yè)視圖 39
2.11 小結(jié) 41
第3章 布局 42
3.1 布局概述 42
※3.2 項(xiàng)目實(shí)現(xiàn)迭代二:創(chuàng)建并使用布局渲染首頁(yè)視圖 43
3.3 Controller類的render()方法執(zhí)行流程 45
3.4 應(yīng)用級(jí)布局 47
3.5 嵌套布局 48
※3.6 項(xiàng)目實(shí)現(xiàn)迭代三:使用嵌套布局渲染“新聞中心”列表頁(yè) 49
3.7 視圖文件的存儲(chǔ)路徑 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 通過(guò)CRUD(增查改刪)操作理解ActiveRecord類 66
5.2.1 文章表(ds_article) 66
5.2.2 在配置文件中初始化數(shù)據(jù)庫(kù)連接 67
5.2.3 創(chuàng)建ActiveRecord模型 68
5.2.4 通過(guò)查詢操作理解ActiveRecord類 69
5.2.5 通過(guò)插入和更新操作理解ActiveRecord類 73
5.2.6 通過(guò)刪除操作理解ActiveRecord類 74
※5.3 項(xiàng)目實(shí)現(xiàn)迭代五:首頁(yè)“行業(yè)百科”數(shù)據(jù)查詢 75
※5.4 項(xiàng)目實(shí)現(xiàn)迭代六:在“文章添加”頁(yè)面實(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成員屬性簡(jiǎn)介 83
6.3.2 ActiveQuery成員方法簡(jiǎn)介 84
6.3.3 Query類where()成員方法簡(jiǎn)介 85
6.4 關(guān)聯(lián)查詢 87
※6.5 項(xiàng)目實(shí)現(xiàn)迭代七:完成首頁(yè)中的數(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小部件替換添加文章視圖
頁(yè)面中的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)迭代九:自定義首頁(yè)幻燈片小部件 128
※7.5 項(xiàng)目實(shí)現(xiàn)迭代十:分頁(yè)顯示列表頁(yè) 131
7.5.1 分頁(yè)組件Pagination 131
7.5.2 新聞中心列表頁(yè)實(shí)現(xiàn)數(shù)據(jù)填充 135
7.5.3 分頁(yè)的超鏈接列表小部件LinkPager 137
7.6 小結(jié) 139
第8章 前端資源管理 140
8.1 初識(shí)資源包類 141
8.2 Yii2框架資源管理代碼分析 143
8.2.1 視圖中注冊(cè)資源包類 143
8.2.2 注冊(cè)資源文件 145
8.2.3 輸出緩沖區(qū)的數(shù)據(jù) 148
8.3 AssetBundle類的成員屬性 149
※8.4 項(xiàng)目實(shí)現(xiàn)迭代十一:本書(shū)配套項(xiàng)目實(shí)現(xiàn)前端資源管理 151
8.4.1 實(shí)現(xiàn)首頁(yè)前端資源管理 151
8.4.2 實(shí)現(xiàn)新聞中心列表頁(yè)前端資源管理 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 視圖中提取錯(cuò)誤信息 164
※9.5 項(xiàng)目實(shí)現(xiàn)迭代十二:完成“添加文章”頁(yè)面中的模型驗(yàn)證 165
9.6 小結(jié) 169
第 10章 AJAX驗(yàn)證 170
10.1 AJAX簡(jiǎn)介 170
10.2 傳統(tǒng)的JavaScript實(shí)現(xiàn)AJAX驗(yàn)證 171
10.2.1 創(chuàng)建AJAX引擎XMLHttpRequest對(duì)象 173
10.2.2 創(chuàng)建HTTP請(qǐng)求 174
10.2.3 設(shè)置響應(yīng)HTTP請(qǐng)求狀態(tài)變化的方法 175
10.2.4 設(shè)置獲取服務(wù)器返回?cái)?shù)據(jù)的語(yǔ)句 176
10.2.5 發(fā)送HTTP請(qǐng)求 177
10.3 jQuery實(shí)現(xiàn)AJAX驗(yàn)證 177
※10.4 項(xiàng)目實(shí)現(xiàn)迭代十三:完成“添加用戶”頁(yè)面的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è)面的客戶端驗(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章 基于角色的訪問(wèn)控制 208
12.1 訪問(wèn)控制技術(shù)綜述 208
12.2 RBAC簡(jiǎn)介 210
12.3 RBAC需求分析及功能概述 210
※12.4 項(xiàng)目實(shí)現(xiàn)迭代十六:最簡(jiǎn)方式實(shí)現(xiàn)RBAC 211
12.4.1 數(shù)據(jù)庫(kù)設(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ù)庫(kù)表 245
12.6.3 路由列表 246
12.6.4 角色列表 249
12.6.5 用戶列表 249
12.6.6 菜單列表 251
12.6.7 集成AdminLTE后臺(tái)主題及菜單展示 253
12.6.8 基于存取控制過(guò)濾器(ACF)的用戶登錄頁(yè)面 255
12.7 小結(jié) 257
第 13章 Yii2框架中的Memcached緩存應(yīng)用 258
13.1 初識(shí)Memcached 258
13.2 Memcached在Web中的應(yīng)用 259
13.2.1 減小數(shù)據(jù)庫(kù)查詢的壓力 260
13.2.2 對(duì)海量數(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ù)庫(kù) 269
13.5.1 安裝php_memcache.dll擴(kuò)展函數(shù)庫(kù) 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è)中應(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 頁(yè)面緩存 294
※項(xiàng)目實(shí)現(xiàn)迭代二十一:“關(guān)于我們”內(nèi)容頁(yè)中應(yīng)用頁(yè)面緩存 295
13.10 局部無(wú)緩存 297
13.11 Yii2框架其他緩存組件介紹 297
13.12 小結(jié) 299
第 14章 日志 300
14.1 Apache服務(wù)器的日志 300
14.1.1 訪問(wèn)日志的格式 301
14.1.2 錯(cuò)誤日志的格式 305
14.1.3 日志的定制 306
14.2 PHP日志 309
14.2.1 PHP配置文件“php.ini” 309
14.2.2 通過(guò)配置文件生成日志 310
14.2.3 通過(guò)方法記錄日志到指定文件 311
14.2.4 錯(cuò)誤信息記錄到操作系統(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)識(shí)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 一個(gè)規(guī)則匹配多個(gè)路由 334
15.4 隱藏入口文件index.php 336
15.4.1 再次使用Apache重寫模塊 336
15.4.2 RewriteCond指令詳解 337
15.4.3 Yii2框架創(chuàng)建URL時(shí)隱藏入口文件 343
15.5 小結(jié) 345
附錄A HTTP狀態(tài)消息 346
附錄B Yii2相關(guān)PHP語(yǔ)法介紹 349
B.1 命名空間 349
B.1.1 命名空間的基本應(yīng)用 350
B.1.2 命名空間的子空間和公共空間 351
B.1.3 命名空間中的名稱和術(shù)語(yǔ) 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