图书目录

目    录

第1章  PHP概述与开发环境搭建 1

1.1  PHP发展历史 1

1.2  PHP 8新特性概述 2

1.3  安装PHP 8.0 3

1.4  安装IDE 4

1.5  验证PHP开发环境 6

1.6  安装ThinkPHP开发环境 7

第2章  PHP 8新特性及其示例 12

2.1  命名参数 12

2.1.1  语法 13

2.1.2  命名参数的优点 13

2.1.3  命名参数的缺点 14

2.1.4  小结 16

2.2  注解 16

2.2.1  模拟“注解” 16

2.2.2  语法 17

2.2.3  高级应用 19

2.2.4  小结 22

2.3  match表达式 22

2.3.1  语法 23

2.3.2  示例 23

2.3.3  小结 25

2.4  nullsafe运算符 25

2.4.1  语法 25

2.4.2  null合并运算符 27

2.4.3  nullsafe运算符和null合并运算符区别 27

2.4.4  小结 28

2.5  JIT编译器 28

2.5.1  PHP中JIT编译器的特性 28

2.5.2  PHP中的JIT编译器 29

2.5.3  使用JIT编译器 30

2.5.4  小结 32

第3章  MVC模式 33

3.1  MVC模式工作原理 33

3.2  第一个MVC应用示例 34

3.3  购物车MVC应用示例 35

3.4  MVC模式最佳实践 39

3.5  小结 39

第4章  ThinkPHP 8新特性 41

4.1  Composer工具 41

4.1.1  Composer的优点 41

4.1.2  Composer的安装 42

4.2  初始化ThinkPHP 8应用 43

4.3  依赖注入 44

4.4  Facade 45

4.5  中间件 46

4.6  配置 49

4.6.1  基于PHP代码的配置 49

4.6.2  环境变量配置 50

4.6.3  多环境配置变量 51

4.7  小结 53

第5章  路由 54

5.1  路由定义 55

5.1.1  路由规则 55

5.1.2  路由地址 55

5.1.3  HTTP请求方法 58

5.2  路由进阶 59

5.2.1  路由生成 59

5.2.2  强制路由 59

5.2.3  路由分组 60

5.2.4  路由中间件 60

5.3  Restful路由 60

5.4  注解路由 63

5.5  URL生成 66

5.6  小结 67

第6章  控制器 69

6.1  控制器定义 69

6.2  请求处理 72

6.2.1  获取请求对象 72

6.2.2  获取请求上下文信息 74

6.2.3  获取请求参数 76

6.2.4  请求缓存 79

6.3  响应处理 79

6.4  小结 81

第7章  数据库 82

7.1  PHP连接数据库 82

7.2  ThinkPHP连接数据库 83

7.2.1  单个数据库连接 83

7.2.2  多个数据库连接 84

7.2.3  读写分离 85

7.3  查询构造器 87

7.3.1  查询数据 88

7.3.2  插入数据 89

7.3.3  更新数据 90

7.3.4  删除数据 90

7.3.5  查询表达式 90

7.3.6  常用链式操作 91

7.3.7  JSON数据操作 92

7.4  数据库事务 94

7.5  小结 95

第8章  模型 96

8.1  模型定义 96

8.2  插入数据 98

8.3  更新数据 100

8.4  删除数据 101

8.5  查询数据 101

8.6  JSON数据的操作 102

8.7  获取器 103

8.8  修改器 105

8.9  搜索器 106

8.10  软删除 107

8.11  时间戳管理 108

8.12  只读字段 109

8.13  关联模型 109

8.13.1  一对一关联 110

8.13.2  一对多关联 113

8.13.3  多对多关联 115

8.14  小结 118

第9章  视图 119

9.1  视图赋值与渲染 119

9.2  PHP模板语法 120

9.3  小结 122

第10章  异常管理与日志系统 123

10.1  异常管理 123

10.1.1  自定义异常处理器 124

10.1.2  抛出和捕获异常 125

10.2  日志系统 126

10.2.1  术语解释 126

10.2.2  日志写入 127

10.2.3  日志配置 127

10.2.4  自定义日志通道 128

10.3  小结 130

第11章  命令行应用开发 131

11.1  命令行应用的入口 131

11.2  从零构建一个命令行应用 132

11.3  小结 134

第12章  Ubuntu服务器部署 135

12.1  在Ubuntu服务器上部署ThinkPHP应用 135

12.2  小结 137

第13章  数据库设计 138

13.1  数据库设计原则 138

13.2  数据库设计工具 138

13.3  小结 143

第14章  多人博客系统开发 144

14.1  运行示例项目 144

14.2  项目目的 145

14.3  需求分析 146

14.4  功能分析 146

14.5  数据库设计 146

14.5.1  数据表模型图 147

14.5.2  数据库关系说明 147

14.5.3  数据库字段 148

14.6  模块设计 149

14.6.1  网站前台 150

14.6.2  用户管理端 151

14.7  效果展示 152

14.8  部分代码示例 155

14.8.1  验证码 155

14.8.2  成功和错误提示页面 156

14.8.3  发表文章事务操作 157

14.9  项目总结 158

14.10  项目代码 158

第15章  图书管理系统开发 159

15.1  运行示例项目 159

15.2  项目目的 160

15.3  需求分析 161

15.4  功能分析 161

15.5  模块设计 162

15.6  数据库设计 162

15.6.1  数据库模型关系 162

15.6.2  数据库关系说明 163

15.6.3  数据库字典 163

15.7  核心业务流程 165

15.8  效果展示 165

15.9  部分代码示例 168

15.9.1  统一仓储类实现 168

15.9.2  图书借阅实现 172

15.10  项目总结 173

15.11  项目代码 173

第16章  论坛系统开发 174

16.1  运行示例项目 174

16.2  项目目的 175

16.3  需求分析 175

16.4  功能分析 176

16.5  模块设计 176

16.6  数据库设计 176

16.6.1  数据库表关系 177

16.6.2  数据库表关系说明 177

16.6.3  数据库字典 178

16.7  效果展示 180

16.8  代码示例 185

16.8.1  文件上传 185

16.8.2  可选的LOGO编辑 186

16.8.3  分页代码保存GET参数 187

16.8.4  主题详情 188

16.8.5  仓储层设计 191

16.8.6  修改密码 194

16.9  项目总结 195

16.10  项目代码 195

第17章  微信小程序商城系统开发 196

17.1  运行示例项目 196

17.2  项目目的 197

17.3  需求分析 197

17.4  功能分析 197

17.5  模块设计 198

17.6  数据库设计 198

17.6.1  数据库关系 198

17.6.2  数据库关系说明 199

17.6.3  数据库字典 199

17.7  效果展示 201

17.8  代码示例 205

17.8.1  购买商品 205

17.8.2  JWT使用示例 206

17.8.3  异常处理 208

17.9  项目总结 208

17.10  项目代码 209

后记 210