编辑推荐
Yii是一个基于组件、用于开发大型Web应用的高性能PHP框架,因其高效性而被公认为“zui有效率的PHP框架”。本书并不是Yii框架的入门教程,而是站在框架设计的高度,从源码级别对Yii框架进行了深度剖析。本书首先介绍了PHP框架技术的概念及其应用领域,然后仿照Yii框架源码自定义框架,其内容涵盖了MVC设计模式、单入口模式和应用的实现。本书旨在帮助读者熟悉Yii的基本结构、规范和开发流程,以敏捷、稳健地开发Web应用程序。本书内容:PHP框架简介;Yii框架基础;布局;模块;ActiveRecord模型;CActiveRecord模型类的查询方法;小物件;ActiveRecord模型验证;AJAX验证;用户登录;基于角色的访问控制;Yii框架中Memcached缓存应用;日志;URL重写;Yii 2.0介绍。读者可通过(http://edu.51cto.com/course/course_id-1973.html)观看视频课程,并加入群:231113585,就图书内容进行讨论。
内容简介
Yii是一个基于组件、用于开发大型Web应用的高性能PHP框架,它提供了当今Web 2.0应用开发所需要的几乎一切功能,是zui具开发效率的PHP框架之一。《Yii框架深度剖析》站在框架设计的高度,从源代码级别剖析了Yii框架的工作机制。《Yii框架深度剖析》分为15章,其内容涵盖了PHP框架的概念,Yii框架的工作流程,布局的概念及作用,模块的概念及作用,ActiveRecord模型的原理和作用,ActiveRecord模型的查询方法,小物件的概念及作用,小物件CActiveForm的作用以及调用方法,模型验证的概念及作用,Yii框架中的AJAX验证,与用户登录相关的内容,Yii框架中基于角色的访问控制系统的设计与实现,Memcached缓存在Yii框架中的使用,日志在Yii框架中的实现,以及Yii框架中URL管理组件。《Yii框架深度剖析》适合Web开发人员,以及有一定的PHP开发基础,但是希望学习使用框架来提升开发能力的读者阅读。
作者简介
刘琨,石家庄铁道大学工程硕士,技术顾问,51CTO技术讲师,拥有十多年软件开发和管理工作经验,七年教学经验,两年海外工作经验。曾任北京某科技股份有限公司技术总监、项目经理等职务,具有扎实的技术功底,近年来一直从事移动互联网开发及物联网研究。
目录
- 第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 下载Yii29
- 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 数据库查询条件类CDbCriteria79
- 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()方法调用小物件CJuiDatePicker99
- 7.1.2 使用beginWidget()和endWidget()方法调用小物件CActiveForm101
- 7.2 项目实现迭代五:使用CActiveForm小物件替换添加文章视图页面中的HTML表单标签103
- 7.3 自定义小物件106
- 7.3.1 继承CWidget106
- 7.3.2 自定义小物件的MVC结构108
- 7.4 项目实现迭代六:自定义首页幻灯片小物件110
- 7.5 项目实现迭代七:分页显示列表页112
- 7.5.1 分页组件CPagination112
- 7.5.2 新闻中心列表页实现数据填充114
- 7.5.3 分页的超链接列表小物件CLinkPager116
- 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 表单模型CFormModel145
- 10.2 客户端验证147
- 10.2.1 CActiveForm实现客户端验证源码分析147
- 10.2.2 项目实现迭代十:完成登录页面的客户端验证150
- 10.3 模型中的自定义方法作为rules()验证器153
- 10.4 用于验证用户名和密码的身份类CUserIdentity154
- 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 防止非管理员用户访问Srbac195
- 11.9.3 验证访问权限196
- 11.10 小结197
- 第12章 Yii框架中Memcached缓存应用199
- 12.1 初识Memcached199
- 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 关于URL262
- 14.1.1 URL组成262
- 14.1.2 良好URL设计原则263
- 14.2 初步认识Apache重写模块265
- 14.3 Yii框架的URL管理268
- 14.3.1 创建URL268
- 14.3.2 解析URL271
- 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.php287
- 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.0303
- 15.3 运行应用305
- 15.4 输出“Hello World”307
- 15.5 小结309
- 附录 HTTP状态消息310