第1章 初识PHP框架技术 1
1.1 PHP语言发展历史及其适合的应用领域 1
1.2 什么是框架 3
1.3 为什么要用框架开发 4
1.4 自定义框架 4
1.4.1 MVC框架模式的实现 4
1.4.2 入口文件 11
1.4.3 应用(前端控制器) 16
1.4.4 从自定义框架到Yii框架 21
1.5 小结 22
第2章 Yii框架基础 23
2.1 Yii简介 23
2.1.1 什么是Yii框架技术 23
2.1.2 优点 25
2.1.3 性能 26
2.1.4 应用案例 27
2.2 下载Yii 29
2.3 创建第一个Yii项目 32
2.4 输出“Hello World” 35
2.5 入口文件 37
2.6 应用(前端控制器) 38
2.7 MVC框架模式 38
2.8 Yii框架中的控制器 39
2.9 Yii框架中的视图 40
2.10 小结 41
第3章 布局 42
3.1 布局概述 42
3.2 项目实现迭代一:创建并使用布局渲染首页视图 43
3.3 CController类的render()方法执行流程 45
3.4 应用级布局 47
3.5 嵌套布局 48
3.6 项目实现迭代二:使用嵌套布局渲染“新闻中心”列表页 49
3.7 视图文件的存储路径 52
3.8 小结 54
第4章 模块 55
4.1 模块概述 55
4.2 使用Gii创建模块 56
4.3 模块中的资源文件 59
4.4 项目实现迭代三:文章管理 61
4.5 小结 63
第5章 ActiveRecord模型 64
5.1 模型的概念 64
5.2 ActiveRecord模型概述 65
5.3 通过CRUD(增查改删)操作理解CActiveRecord类 66
5.3.1 文章表(ds article) 66
5.3.2 在配置文件中初始化数据库连接 67
5.3.3 创建ActiveRecord模型 67
5.3.4 通过查询操作理解CActiveRecord类 69
5.3.5 通过插入和更新操作理解CActiveRecord类 72
5.3.6 通过删除操作理解CActiveRecord类 74
5.4 小结 74
第6章 CactiveRecord模型类的查询方法 75
6.1 CActiveRecord类的find()方法与重载 75
6.2 查询方法find()实例 77
6.2.1 实现带有逻辑运算符和比较运算符的查询 77
6.2.2 实现范围比较查询 77
6.2.3 实现模糊查询 78
6.3 数据库查询条件类CDbCriteria 79
6.3.1 CDbCriteria成员属性介绍 79
6.3.2 CDbCriteria成员方法介绍 80
6.4 CActiveRecord类的其他查询方法 84
6.5 关联查询 86
6.6 项目实现迭代四:完成首页中的数据填充 87
6.6.1 实现幻灯片切换 88
6.6.2 实现成功案例 90
6.6.3 实现其他栏目的文章内容查询 91
6.7 小结 98
第7章 Widget(小物件) 99
7.1 调用小物件的两种方式 99
7.1.1 使用widget()方法调用小物件CJuiDatePicker 99
7.1.2 使用beginWidget()和endWidget()方法调用小物件CActiveForm 101
7.2 项目实现迭代五:使用CActiveForm小物件替换添加文章视图页面中的HTML表单标签 103
7.3 自定义小物件 106
7.3.1 继承CWidget 106
7.3.2 自定义小物件的MVC结构 108
7.4 项目实现迭代六:自定义首页幻灯片小物件 110
7.5 项目实现迭代七:分页显示列表页 112
7.5.1 分页组件CPagination 112
7.5.2 新闻中心列表页实现数据填充 114
7.5.3 分页的超链接列表小物件CLinkPager 116
7.5.4 对小物件的二次开发 118
7.6 小结 120
第8章 ActiveRecord模型验证 121
8.1 模型中编写验证规则 122
8.2 控制器中安全赋值 124
8.3 控制器中触发验证 125
8.4 视图中提取错误信息 127
8.5 项目实现迭代八:完成“添加文章”页面中的模型验证 128
8.6 小结 131
第9章 AJAX验证 132
9.1 AJAX简介 132
9.2 传统的JavaScript实现AJAX验证 133
9.2.1 创建AJAX引擎XMLHttpRequest对象 135
9.2.2 创建HTTP请求 136
9.2.3 设置响应HTTP请求状态变化的方法 137
9.2.4 设置获取服务器返回数据的语句 138
9.2.5 发送HTTP请求 139
9.3 jQuery实现AJAX验证 139
9.4 项目实现迭代九:完成“添加用户”页面中的AJAX验证 141
9.5 小结 144
第10章 用户登录 145
10.1 表单模型CFormModel 145
10.2 客户端验证 147
10.2.1 CActiveForm实现客户端验证源码分析 147
10.2.2 项目实现迭代十:完成登录页面的客户端验证 150
10.3 模型中的自定义方法作为rules()验证器 153
10.4 用于验证用户名和密码的身份类CUserIdentity 154
10.5 项目实现迭代十一:完成用户登录 157
10.6 保存用户登录状态的CWebUser类 160
10.7 小结 161
第11章 基于角色的访问控制 162
11.1 访问控制技术综述 162
11.2 RBAC概述 164
11.3 RBAC需求分析及功能概述 164
11.4 权限管理系统数据库设计 165
11.5 项目实现迭代十二:权限管理系统主要模块的实现 166
11.5.1 用户管理 166
11.5.2 角色管理 168
11.5.3 权限管理 170
11.5.4 用户-角色配置管理 175
11.5.5 角色-权限配置管理 175
11.6 Yii框架中RBAC的设计与实现 177
11.6.1 配置Srbac模块及授权管理组件 177
11.6.2 Srbac使用的数据库表 180
11.7 编写AdminController初步了解Srbac授权体系 181
11.7.1 管理授权项 182
11.7.2 分配授权项 186
11.7.3 用户已经获授权 188
11.8 测试Srbac验证授权流程 188
11.9 Srbac添加到实际项目中的应用 193
11.9.1 修改Srbac模块的视图布局 193
11.9.2 防止非管理员用户访问Sr 195
11.9.3 验证访问权限 196
11.10 小结 197
第12章 Yii框架中Memcached缓存应用 199
12.1 初识Memcached 199
12.2 Memcached在Web中的应用 200
12.2.1 减小数据库查询的压力 201
12.2.2 对海量数据的处理 201
12.3 Memcached的安装及管理 202
12.3.1 安装Memcached软件 203
12.3.2 Memcached服务器的管理 204
12.4 使用Telnet作为Memcached的客户端管理 204
12.4.1 Telnet客户端连接Memcached服务器 205
12.4.2 连接Memcached服务器 205
12.4.3 基本的Memcached客户端命令 206
12.4.4 查看当前Memcached服务器的运行状态信息 206
12.4.5 数据管理指令 208
12.5 PHP的Memcached客户端扩展函数库 210
12.5.1 安装php memcache.dll扩展函数库 210
12.5.2 相关扩展方法 213
12.5.3 实例应用 220
12.6 Yii框架CMemCache缓存组件 222
12.6.1 配置使用CMemCache缓存组件 222
12.6.2 CMemCache类部分构成 224
12.6.3 CMemCache实例 226
12.7 缓存依赖 227
12.8 片段缓存 230
12.8.1 片段缓存的起始和结束 230
12.8.2 小物件COutputCache类部分构成 232
12.8.3 项目实现迭代十三:产品中心栏目实现片段缓存 234
12.9 页面缓存 236
12.10 局部无缓存 240
12.11 Yii框架其他缓存组件介绍 241
12.12 小结 242
第13章 日志 243
13.1 Apache服务器的日志 243
13.1.1 访问日志的格式 244
13.1.2 错误日志的格式 248
13.1.3 日志的定制 249
13.2 PHP日志 252
13.2.1 PHP配置文件“php.ini” 252
13.2.2 通过配置文件生成日志 253
13.2.3 通过方法记录日志到指定文件 254
13.2.4 错误信息记录到操作系统的日志里 254
13.3 Yii框架的日志记录 256
13.3.1 在配置文件中设置日志保存路径 256
13.3.2 通过方法记录日志信息 259
13.4 小结 261
第14章 URL重写 262
14.1 关于URL 262
14.1.1 URL组成 262
14.1.2 良好URL设计原则 263
14.2 初步认识Apache重写模块 265
14.3 Yii框架的URL管理 268
14.3.1 创建URL 268
14.3.2 解析URL 271
14.3.3 URL模式 273
14.3.4 实现伪静态 274
14.3.5 带有正则表达式的URL规则 275
14.3.6 一个规则匹配多个路由 276
14.3.7 规则源码分析 278
14.4 隐藏入口文件index.php 287
14.4.1 再次使用Apache重写模块 287
14.4.2 RewriteCond指令详解 288
14.4.3 Yii框架创建URL时隐藏入口文件 294
14.5 小结 296
第15章 Yii 2.0介绍 297
15.1 命名空间 297
15.1.1 命名空间的基本应用 298
15.1.2 命名空间的子空间和公共空间 299
15.1.3 命名空间中的名称和术语 300
15.1.4 别名和导入 301
15.2 安装Yii 2.0 303
15.3 运行应用 305
15.4 输出“Hello World” 307
15.5 小结 309
附录 HTTP状态消息 310