第1章 Phalcon框架起步 1
1.1 框架之谈 1
1.1.1 是否需要框架 1
1.1.2 为什么选择Phalcon 2
1.2 快速起步 3
1.2.1 Phalcon开发环境的配置 3
1.2.2 第一个Phalcon项目 6
1.3 Phalcon开发工具 14
1.4 PhpStorm配置 16
小结 16
习题 16
第2章 网络通信与HTTP协议 17
2.1 计算机网络体系 17
2.1.1 OSI参考模型 18
2.1.2 TCP/IP模型 19
2.1.3 TCP/IP模型的封装与解封 21
2.2 TCP协议 23
2.2.1 TCP段格式 23
2.2.2 TCP Socket 25
2.2.3 TCP传输 26
2.3 HTTP协议 28
2.3.1 HTTP请求报文 28
2.3.2 HTTP响应报文 30
2.4 Cookie与Session 31
2.5 HTTPS 32
2.5.1 HTTPS的相关概念 33
2.5.2 TLS协议的原理 34
小结 36
习题 36
第3章 理解Phalcon的设计思想 37
3.1 Phalcon框架结构 37
3.2 依赖注入 38
3.2.1 依赖注入的原理和简易
实现 38
3.2.2 Phalcon中的DI 42
3.3 事件驱动 45
3.3.1 何为事件驱动架构 45
3.3.2 事件驱动架构的实现原理 46
3.3.3 Phalcon事件驱动机制
的应用 47
3.3.4 自定义可触发事件的组件 50
小结 52
习题 53
第4章 应用 54
4.1 引导程序Bootstrap 54
4.2 Application工作流 58
小结 60
习题 60
第5章 路由与URL 61
5.1 路由工作原理 61
5.2 定义路由 63
5.3 URL 67
小结 68
习题 68
第6章 调度器与控制器 69
6.1 循环调度 69
6.2 控制器基本用法 69
6.3 调度器插件 73
小结 75
习题 75
第7章 视图 77
7.1 注册视图服务 77
7.2 视图渲染级别 78
7.3 视图路径 79
7.4 控制器向视图传值 80
7.5 视图中获取服务 81
7.6 视图工作原理 81
7.7 Volt引擎 83
小结 88
习题 89
第8章 模型 90
8.1 数据表与Model类 90
8.2 Model数据查询 91
8.2.1 Model基本数据查询 91
8.2.2 Model查询参数 92
8.2.3 Model面向对象查询 94
8.3 Model数据创建和更新 95
8.4 Model数据删除 97
8.5 原生SQL和PHQL 97
8.5.1 使用原生SQL 97
8.5.2 使用PHQL 98
8.6 Model事务机制 99
8.6.1 自定义事务 100
8.6.2 模型的事务 100
8.7 Model关系 103
8.7.1 三大关联关系 103
8.7.2 关联模型数据查询 108
8.7.3 关联模型数据创建和更新 109
8.7.4 关联模型数据删除 109
8.8 Model事件和事件管理器 110
8.8.1 Model事件 110
8.8.2 使用自定义的事件管理器 111
8.9 Model连接多个数据库 112
8.10 分析SQL语句的执行时间 113
8.11 Model获取DI容器内的服务 114
小结 114
习题 115
第9章 访问控制列表 116
9.1 ACL实现原理 116
9.2 Phalcon\\ACL的基本方法 117
9.3 静态ACL的实现 119
9.4 动态ACL的实现 123
小结 124
习题 125
第10章 网站安全 126
10.1 使用HTTPS 126
10.2 跨站请求伪造 128
10.2.1 攻击原理 128
10.2.2 防御 129
10.3 XSS攻击 129
10.3.1 XSS攻击原理 130
10.3.2 防御 130
10.4 SQL注入 131
10.4.1 SQL注入原理 131
10.4.2 防御 132
10.5 拒绝服务攻击 133
10.6 服务器文件权限管理 134
10.6.1 文件权限管理的目的和原理 134
10.6.2 Linux文件权限操作方法 135
10.7 资源ID保护 136
10.8 文件上传安全 136
10.8.1 文件上传漏洞 136
10.8.2 防御 137
小结 137
习题 138
第11章 缓存 139
11.1 缓存的场景分析 139
11.2 Phalcon缓存 139
11.2.1 Phalcon缓存简介 139
11.2.2 Phalcon缓存的使用 141
11.2.3 Phalcon缓存操作 143
11.3 模型层缓存 145
11.4 控制层缓存 146
11.5 视图层缓存 148
11.5.1 视图层缓存 148
11.5.2 全站静态 149
11.6 缓存清除 149
小结 151
习题 151
第12章 多人合作的开发架构 152
12.1 多模块的开发模式 152
12.1.1 如何分割模块 152
12.1.2 Phalcon多模块项目 153
12.1.3 Phalcon模块之间调用 156
12.1.4 多模块的ACL实现 157
12.2 多站点跨语言的开发模式 158
12.3 基于Git的代码管理 161
12.3.1 Git的常用操作 161
12.3.2 分支的创建与管理 164
12.3.3 GitHub的使用 165
12.4 核心代码保护 168
小结 169
习题 170