描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302533580
本书用于入门,实战性很强,没有复杂的概念讲解,都是实际项目中使用的实用技术,比如数据验证、调试、部署、缓存等。多人博客、图书管理系统、论坛系统、微信小程序商城系统四个实战项目案例,使读者尽快切入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 软删除 43
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
前 言
PHP是一种通用开源脚本语言,开源、跨平台、易于使用,主要适用于Web开发领域。MVC模式使得PHP在大型Web项目开发中耦合性低、重用性高、可维护性高、有利于软件工程化管理。作为国内MVC框架中的佼佼者,ThinkPHP是一个免费开源、快速、简单的、面向对象的、轻量级PHP开发框架,已经成长为国内最领先和最具影响力的Web应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级网站的开发。
ThinkPHP 5版本是一个颠覆和重构版本,采用全新的架构思想,引入了更多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载,支持composer,并针对API开发做了大量的优化,包括路由、日志、异常、模型、数据库、模板引擎和验证等模块都已经重构,不适合原有ThinkPHP 3.2项目的升级,所以编写了本书。
本书编写的目的是让读者能够系统地学习ThinkPHP 5框架。即使读者不了解MVC模式或者MVC框架,阅读本书也不会有太大的问题,并且学完本书后能基于ThinkPHP 5开发自己的项目。为了加强读者对内容的理解,每一章都有配套示例以及详尽的注释,便于读者理解和学习。大部分章节都会配有练习,进行针对性的训练。在本书的后半部分更是直接展示一个完整项目的开发流程,让读者可以在实践中学习。毕竟“眼过千遍,不如手写一遍”。
本书示例代码
针对上一版代码Github单个仓库托管问题,本书实例代码已经改为组织托管,每个项目都会使用独立的仓库保存。所有的实例都可以在Web开发中直接使用,省去了读者“造轮子”的过程,以专注于业务逻辑开发。对于本书内容有任何疑问或者在实际开发中遇到问题的读者可以在Github上的issue中提出问题,作者会进行解答。本书仓库地址为https://github.com/thinkphp5-inaction。如果下载有问题,请联系[email protected],邮件主题为“ThinkPHP5实战”。
本书开发环境
操作系统:Windows10专业版
Web服务器:PHP自带
PHP版本:PHP 7.2.5(NTS)(ThinkPHP 5要求PHP版本大于等于5.6即可)
IDE:PHPStorm 2018.1
ThinkPHP版本:ThinkPHP 5.0.19(本书提到的ThinkPHP 5即指这个版本)
浏览器:Google Chrome 66(更高的版本也没有问题)
本书适合读者
? Web开发爱好者
? 拥有PHP基础想深入学习PHP大型项目开发的人员
? 大中专院校以及培训机构的讲师
? 初/中级网站开发人员
著 者
2019年8月
评论
还没有评论。