《PHP精粹 编写高效PHP代码》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:(美)米切尔,(美)沙非克,(美)蒂兰著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2012
  • ISBN:9787111399070
  • 页数:238 页
图书介绍:本书由8章,每一章都论述一个主题。第1章阐述了面向对象编程的概念以及相关的定义;第2~3章从数据库和API介绍了互联网的存储方式以及数据获取方式;第4章介绍了帮助用户优化开发和维护工作的设计模式;第5章从安全性方面深入解析了PHP格言:“过滤输入,避免输出”;第6章从性能方面介绍了可帮助快速优化服务器配置、简化文件系统以及分析代码运作的工具;第7章从如何针对具体的应用程序进行单元测试、数据库测试、系统测试以及负载测试等方面介绍了自动测试;第8章介绍了如何用静态分析工具或者资源来测试质量、优化代码、完善文档以及在Web上部署健壮性项目。

第1章 面向对象编程 1

1.1为什么要使用面向对象编程 1

1.2 OOP简介 1

1.2.1声明类 1

1.2.2类的构造 2

1.2.3对象实例化 3

1.2.4自动加载 3

1.2.5使用对象 4

1.2.6使用静态属性和方法 4

1.2.7对象和命名空间 5

1.3对象的继承 7

1.4对象和函数 9

1.4.1类型提示 9

1.4.2多态性 9

1.4.3对象和引用 10

1.4.4作为函数参数传递的对象 11

1.4.5流畅的接口 12

1.5 public、private以及protected 12

1.5.1 public 13

1.5.2 private 13

1.5.3 protected 13

1.5.4选择正确的可见性 14

1.5.5使用getter和setter来控制可见性 14

1.5.6使用神奇的_get和_set方法 15

1.6接口 16

1.6.1 SPL Countable接口示例 16

1.6.2计数对象 16

1.6.3声明和使用接口 17

1.6.4识别对象和接口 17

1.7异常 18

1.7.1处理异常 18

1.7.2为什么要处理异常 19

1.7.3抛出异常 19

1.7.4扩展异常 19

1.7.5捕捉特定类型的异常 20

1.7.6设定一个全局异常处理程序 21

1.7.7使用回调 22

1.8更多神奇的方法 22

1.8.1使用_call()和_callStatic()方法 22

1.8.2使用_toString()方法输出对象 23

1.8.3序列化对象 24

1.9本章小结 25

第2章 数据库 26

2.1数据持久化和Web应用程序 26

2.2选择如何存储数据 26

2.3用MySQL建立一个食谱网站 27

2.4 PHP数据库对象 29

2.4.1使用PDO连接到MySQL 29

2.4.2从表中选择数据 30

2.4.3数据提取模式 30

2.4.4参数和预处理语句 31

2.4.5绑定值和预处理语句的变量 32

2.4.6插入一行并获取ID 34

2.4.7有多少行被擂入、更新或删除 34

2.4.8删除数据 35

2.5处理PDO中的错误 35

2.5.1处理预处理时的问题 36

2.5.2处理执行时的问题 36

2.5.3处理提取数据时的问题 37

2.6高级PDO特征 37

2.6.1事务和PDO 38

2.6.2存储过程和PDO 39

2.7设计数据库 39

2.7.1主键与索引 40

2.7.2 MySQL解析 40

2.7.3内部连接 43

2.7.4外部连接 43

2.7.5聚合函数和Group By 44

2.7.6规格化数据 46

2.8数据库——排序 46

第3章 API 47

3.1开始之前 47

3.1.1使用API工具 47

3.1.2添加API到你的系统 47

3.2面向服务的架构 47

3.3数据格式 48

3.3.1使用JSON 49

3.3.2使用XML 50

3.4 HTTP:超文本传输协议 53

3.4.1 HTTP信封 53

3.4.2发送HTTP请求 54

3.4.3 HTTP状态码 57

3.4.4 HTTP文件头 58

3.4.5 HTTP动词 61

3.5理解并选择服务类型 61

3.5.1 PHP和SOAP 62

3.5.2使用WSDL描述SOAP服务 63

3.6调试HTTP 65

3.6.1使用日志收集信息 65

3.6.2检查HTTP流量 65

3.7 RPC服务 66

3.7.1使用一个RPC服务:Flickr示例 66

3.7.2建立一个RPC服务 68

3.8Ajax和Web服务 69

3.9开发和使用RESTful服务 75

3.9.1超越 Pretty URL 75

3.9.2 RESTful原则 76

3.9.3建立一个RESTful服务 76

3.10设计一个Web服务 82

3.11提供的服务 83

第4章 设计模式 84

4.1什么是设计模式 84

4.1.1选择一个最合适的 84

4.1.2单例模式 84

4.1.3 Traits 86

4.1.4注册表模式 87

4.1.5工厂模式 90

4.1.6迭代模式 91

4.1.7观察者模式 98

4.1.8依赖注入 101

4.1.9模型一视图一控制器 104

4.2模式的形成 114

第5章 安全性 115

5.1是否有些偏执 115

5.2过滤输入、避免输出 116

5.3跨站脚本 117

5.3.1攻击 117

5.3.2修复 118

5.3.3在线资源 119

5.4伪造跨站请求 119

5.4.1攻击 119

5.4.2修复 120

5.4.3在线资源 121

5.5会话固定 122

5.5.1攻击 122

5.5.2修复 122

5.5.3在线资源 123

5.6会话劫持 123

5.6.1攻击 123

5.6.2修复 124

5.6.3在线资源 125

5.7 SQL注入 125

5.7.1攻击 125

5.7.2修复 126

5.7.3在线资源 127

5.8储存密码 127

5.8.1攻击 127

5.8.2修复 127

5.8.3在线资源 128

5.9暴力破解攻击 129

5.9.1攻击 129

5.9.2修复 130

5.9.3在线资源 131

5.10 SSL 131

5.10.1攻击 131

5.10.2修复 132

5.10.3在线资源 132

5.11资源 132

第6章 性能 134

6.1基准测试 134

6.2系统测试 139

6.2.1代码缓存 139

6.2.2 INI设置 143

6.3数据库 144

6.4文件系统 144

6.5程序概要分析 151

6.5.1安装XHProf 152

6.5.2安装XHGui 155

6.6本章小结 161

第7章 自动测试 163

7.1单元测试 163

7.1.1安装PHPUnit 163

7.1.2编写测试用例 163

7.1.3运行测试 165

7.1.4测试替身 167

7.1.5编写可测试的代码 170

7.1.6测试视图和控制器 173

7.2数据库测试 177

7.2.1数据库测试用例 177

7.2.2连接 178

7.2.3数据集 178

7.2.4断言 180

7.3系统测试 181

7.3.1初始设置 181

7.3.2命令 182

7.3.3定位器 183

7.3.4断言 184

7.3.5数据库集成 184

7.3.6调试 186

7.3.7自动编写测试 187

7.4负载测试 187

7.4.1 ab 187

7.4.2 Siege 188

7.5本章小结 189

第8章 质量保证 190

8.1使用静态分析工具测量质量 190

8.1.1 phploc 190

8.1.2 phpcpd 191

8.1.3 phpmd 192

8.2编码标准 193

8.2.1使用PHP代码探测器检查编码标准 193

8.2.2查看违反编码标准的地方 195

8.2.3 PHP代码探测器标准 196

8.3文档和代码 196

8.3.1使用phpDocumentor 197

8.3.2其他文档工具 199

8.4源代码管理 199

8.4.1使用集中式版本控制 200

8.4.2为了源代码管理使用版本控制 201

8.4.3设计版本库的结构 202

8.4.4分布式的版本控制 204

8.4.5代码的社会性工具 205

8.4.6使用Git进行源代码控制 206

8.4.7将版本库作为构建过程的根 207

8.5自动部署 207

8.5.1立刻切换到一个新版本 208

8.5.2管理数据库变更 208

8.5.3自动部署和Phing 209

8.6准备部署 211

附录A PEAR和PECL 212

附录B PHP标准库 229

附录C 进一步参考信息 236