《PHP Web 2.0开发实战》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(澳)泽瓦斯著,苏金国等译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2008
  • ISBN:9787115187314
  • 页数:475 页
图书介绍:本书通过一个完整的应用——博客系统向读者详细介绍了Web 开发的全过程。首先介绍了这个Web应用中具体实现的一些特性,包括网站主页、用户主页、用户注册页面、账户登录和管理页面、用户博客系统、个人化用户区、动态图库、网站搜索以及应用管理等,然后逐章实现这个Web应用中的每个特性,最后介绍了开发一个完美应用的有关问题。

第1章 应用规划与设计 1

1.1 什么是Web 2.0 2

1.2 数据库连接 2

1.3 网站模板 3

1.4 网站特性 3

1.4.1 网站主页和用户主页 3

1.4.2 用户注册 3

1.4.3 账户登录和管理 4

1.4.4 用户博客 4

1.4.5 网站搜索 4

1.4.6 应用管理 4

1.5 开发的其他方面 4

1.5.1 搜索引擎优化 5

1.5.2 PHPDoc风格的注释 5

1.5.3 安全性 6

1.5.4 应用日志 6

1.5.5 可维护性和可扩展性 6

1.6 版本控制和单元测试 7

1.7 小结 7

第2章 建立应用框架 8

2.1 Web服务器配置 8

2.1.1 操作系统 8

2.1.2 安装Apache HTTP服务器 9

2.1.3 安装MySQL 5 9

2.1.4 安装PHP 5.2.3 10

2.2 应用文件系统结构 11

2.2.1 Web根目录 11

2.2.2 数据存储目录 11

2.2.3 PHP类目录 11

2.2.4 模板目录 11

2.2.5 完整的目录结构 12

2.3 安装Zend框架 12

2.4 配置Web服务器 13

2.4.1 在Linux上创建虚拟主机 14

2.4.2 在Windows上创建虚拟主机 15

2.4.3 重启Web服务器 15

2.5 建立数据库 16

2.6 使用MVC模式&1 6

2.6.1 将应用逻辑与表示逻辑分离 17

2.6.2 将所有请求定向到index.php 19

2.6.3 Zend_Controller类简介 20

2.6.4 Zend_Controller如何处理请求 20

2.6.5 创建IndexController 22

2.7 定义应用设置 23

2.8 连接数据库 25

2.9 Smarty模板引擎 27

2.9.1 为什么不使用其他模板引擎 29

2.9.2 下载和安装Smarty 30

2.9.3 利用Zend_Controller自动显示视图 32

2.9.4 Smarty与网站控制器集成 34

2.10 增加日志功能 36

2.1 1 小结 39

第3章 用户认证、授权和管理 40

3.1 创建用户数据库表 40

3.1.1 时间戳 42

3.1.2 用户个性化信息 42

3.2 Zend_Auth简介 43

3.2.1 实例化Zend_Auth 44

3.2.2 使用Zend_Auth完成认证 46

3.3 Zend_Acl简介 48

3.4 结合Zend_Auth、Zend_Acl和Zend_Controller_Front 50

3.5 用DatabaseObject管理用户记录 53

3.5.1 DatabaseObject_User类 55

3.5.2 使用DatabaseObject_User 57

3.6 管理用户个性化信息 58

3.6.1 使用Profile_User 59

3.6.2 集成Profile_User和DatabaseObject_User 60

3.7 小结 63

第4章 用户注册、登录和注销 64

4.1 为应用增加用户注册功能 64

4.1.1 为用户注册创建表单处理器 64

4.1.2 显示注册表单并处理注册 71

4.1.3 为用户注册表单增加CAPTCHA 78

4.1.4 增加E-mail功能 84

4.2 实现账户登录和注销 88

4.2.1 创建登录模板 88

4.2.2 增加account控制器login动作 90

4.2.3 记录成功和失败登录 93

4.2.4 用户注销账户 95

4.3 处理忘记口令的情况 95

4.3.1 重置用户口令 96

4.3.2 重置口令的函数 98

4.4 实现账户管理 102

4.4.1 创建账户主页 103

4.4.2 更新网站导航 104

4.4.3 允许用户更新信息 106

4.5 小结 107

第5章 Prototype与Scriptaculous简介 108

5.1 下载和安装Prototype 108

5.2 选择文档对象模型中的对象 109

5.2.1 $()函数 109

5.2.2 getElementsByClassName()函数 110

5.2.3 $$()函数 113

5.2.4 getElementsBySelector()函数 114

5.3 Prototype的Hash对象 114

5.4 其他元素扩展 115

5.4.1 显示和隐藏元素 115

5.4.2 获取元素尺寸 115

5.4.3 管理元素类 115

5.4.4 用Prototype管理字符串 117

5.5 Prototype中的Ajax操作 118

5.5.1 Ajax请求选项 118

5.5.2 Ajax回调函数 119

5.5.3 JSON 122

5.5.4 一个Ajax.Request例子 123

5.6 Prototype中的事件处理 127

5.6.1 观察事件 128

5.6.2 查找事件出现在哪个元素上 128

5.6.3 取消事件 129

5.7 利用Prototype创建JavaScript类 129

5.7.1 创建类 130

5.7.2 为函数调用绑定对象 130

5.8 从Prototype转Scriptaculous 133

5.8.1 预置控件 133

5.8.2 拖放 134

5.8.3 视觉效果 134

5.8.4 DOM元素构建器 135

5.8.5 JavaScript单元测试 135

5.9 下载和安装Scriptaculous 135

5.10 在一个实用例子中结合使用Prototype、Scriptaculous、Ajax和PHP 136

5.10.1 创建主HTML页面:index.php 137

5.10.2 为应用设置样式:styles.css 138

5.10.3 创建和填充数据库:schema.sql 139

5.10.4 服务器端管理列表项:items.php 140

5.10.5 在服务器端处理Ajax请求:processor.php 141

5.10.6 创建客户端应用逻辑:scripts.js 143

5.11 小结 148

第6章 为Web应用设置样式 149

6.1 增加页面标题和浏览路径 149

6.1.1 Breadcrumbs类 150

6.1.2 生成URL 152

6.1.3 为各个控制器动作设置标题和浏览路径 155

6.1.4 创建一个Smarty插件输出浏览路径 157

6.1.5 显示页面标题 159

6.2 在应用中集成设计 160

6.2.1 创建静态HTML 160

6.2.2 将HTML标记移入Smarty模板 163

6.3 构建CSS 167

6.3.1 指定媒体类型和加载CSS文件 168

6.3.2 创建应用CSS 169

6.3.3 创建只打印样式表 173

6.3.4 完整的应用样式表 175

6.4 为应用Web表单设置样式 178

6.5 加载Prototype和Scriptaculous 181

6.6 实现客户端表单验证 181

6.6.1 为CustomControllerAction类增加JSON支持 182

6.6.2 修改表单处理器 183

6.6.3 修改注册控制器动作 183

6.6.4 创建JavaScript表单验证器 185

6.6.5 加载UserRegistrationForm类 188

6.7 小结 189

第7章 构建博客系统 190

7.1 创建数据库表 190

7.2 建立DatabaseObject和Profile类 192

7.2.1 创建DatabaseObject_BlogPost类 192

7.2.2 创建Profile_BlogPost类 193

7.3 创建控制器管理博客帖子 194

7.3.1 扩展应用权限 194

7.3.2 BlogmanagerController动作 195

7.3.3 链接博客管理系统 197

7.4 创建和编辑博客帖子 198

7.4.1 创建博客帖子提交表单模板 199

7.4.2 在editAction()中实例化FormProcessor_BlogPost 201

7.4.3 实现FormProcessor_BlogPost类 203

7.4.4 为博客帖子生成一个永久链接 209

7.4.5 过滤提交的HTML 212

7.4.6 创建一个新博客帖子 215

7.5 预览博客帖子 216

7.5.1 创建预览动作 216

7.5.2 实现预览模板 216

7.5.3 请求对用户动作的确认 219

7.6 更新博客帖子的状态 221

7.6.1 完成setstatusAction() 221

7.6.2 通知用户 223

7.7 小结 228

第8章 扩展博客管理系统 229

8.1 在博客管理系统索引页面上列出帖子 229

8.1.1 从数据库获取博客帖子 230

8.1.2 将最新帖子和各月概要赋给模板 237

8.1.3 在模板中显示最新帖子 238

8.1.4 显示各月概要 241

8.2 为博客各月概要增加Ajax功能 245

8.2.1 创建Ajax请求输出 246

8.2.2 BlogMonthlySummary JavaScript类 247

8.2.3 安装BlogMonthlySummary类 249

8.2.4 通知用户内容已更新 249

8.3 集成WYSIWYG编辑器 252

8.3.1 下载并安装FCKeditor 254

8.3.2 配置FCKeditor 254

8.3.3 在博客编辑页面中加载FCKeditor 255

8.4 小结 257

第9章 个人化用户区 258

9.1 控制用户设置 258

9.1.1 为用户提供定制设置 259

9.1.2 处理对用户设置的修改 260

9.1.3 创建默认用户设置 262

9.2 UserController类 262

9.2.1 将请求路由到UserController 263

9.2.2 处理对UserController的请求 268

9.3 显示用户的博客 272

9.3.1 显示博客索引页面 272

9.3.2 显示单个博客帖子 277

9.3.3 生成博客归档链接 281

9.3.4 显示各月归档 283

9.4 填充应用主页 284

9.4.1 加载最新公开帖子 284

9.4.2 实现应用主页 285

9.5 小结 290

第10章 实现Web 2.0特性 292

10.1 标签 292

10.1.1 实现标签系统 293

10.1.2 管理博客帖子标签 297

10.1.3 在用户博客上显示用户的标签 300

10.1.4 显示标签空间 303

10.1.5 在各帖子上显示标签 306

10.2 Web提要 306

10.2.1 Web提要的数据格式 306

10.2.2 用Zend_Feed创建一个Atom提要 307

10.2.3 为UserController增加提要 307

10.2.4 链接到提要 310

10.2.5 其他提要选项 312

10.3 微格式 312

10.3.1 使用微格式的例子 312

10.3.2 为什么使用微格式 314

10.3.3 对标签标记微格式 315

10.4 允许用户创建公开个性化数据 316

10.4.1 允许用户创建公开个性化数据 317

10.4.2 显示用户的个性化数据 319

10.5 小结 322

第11章 一个动态图库 323

11.1 存储上传文件 323

11.1.1 为图像数据创建数据库表 324

11.1.2 用DatabaseObject控制上传图像 325

11.2 上传文件 325

11.2.1 设置表单编码 326

11.2.2 增加表单 326

11.2.3 指定文件输入类型 328

11.2.4 设置最大文件大小 329

11.2.5 处理上传文件 329

11.3 发送图像 337

11.4 调整图像大小 339

11.4.1 创建缩略图 340

11.4.2 将缩略图生成工具链接到图像动作处理程序 344

11.5 管理博客帖子图像 348

11.5.1 自动加载博客帖子图像 348

11.5.2 在帖子预览页面上显示图像 350

11.5.3 删除博客帖子图像 352

11.5.4 使用Scriptaculous和Ajax删除图像 354

11.5.5 删除帖子时删除图像 359

11.5.6 重排博客帖子图像的顺序 360

11.6 在用户博客上显示图像 365

11.6.1 扩展GetPosts()函数 365

11.6.2 在博客索引页面上显示缩略图 366

11.6.3 在博客详细信息页面上显示图像 367

11.6.4 用Lightbox显示更大的图像 369

11.7 小结 371

第12章 实现网站搜索 372

12.1 Zend_Search_Lucene简介 372

12.1.1 与MySQL全文索引比较 372

12.1.2 Zend_Search_Lucene字段类型 373

12.1.3 字段命名 374

12.2 建立应用内容的索引 374

12.2.1 对多种类型的数据建立索引 375

12.2.2 创建新Zend_Search_Lucene_Document 375

12.2.3 获取索引位置 377

12.2.4 构建完整索引 377

12.2.5 对一个博客帖子建立索引和解除索引 379

12.2.6 触发搜索索引更新 382

12.3 创建搜索工具 384

12.3.1 增加搜索表单 384

12.3.2 处理搜索请求 386

12.3.3 查询搜索索引 386

12.3.4 显示搜索结果 390

12.3.5 搜索类型 392

12.4 为搜索工具增加自动完成功能 393

12.4.1 提供搜索建议 393

12.4.2 创建一个动作处理程序返回搜索结果 394

12.4.3 获取搜索建议 395

12.4.4 加载SearchSuggestor类 397

12.4.5 显示搜索建议 398

12.4.6 为结果增加鼠标导航 400

12.4.7 为结果增加键盘导航 402

12.5 小结 407

第13章 集成Google Maps 408

13.1 Google Maps特性 408

13.1.1 地理编码 408

13.1.2 显示地图 409

13.1.3 控制地图 411

13.2 集成规划 411

13.2.1 Google Maps的局限性 412

13.2.2 浏览器兼容性 412

13.2.3 文档和资源 412

13.2.4 创建Google Maps API键 413

13.3 增加位置存储功能 413

13.3.1 创建数据库表 413

13.3.2 创建DatabaseObject_BlogPostLocation类 413

13.3.3 修改博客帖子来加载位置 415

13.4 创建第一个地图 416

13.4.1 创建一个新博客管理系统控制器动作 417

13.4.2 显示第一个Google地图 419

13.5 在地图上管理位置 424

13.5.1 处理位置管理Ajax请求 424

13.5.2 创建地址查找表单 429

13.5.3 扩展BlogLocationManager JavaScript类 430

13.5.4 使用BlogLocationManager 442

13.6 在用户公开博客上显示地图 443

13.6.1 使用geo微格式输出位置 444

13.6.2 创建BlogLocations类 446

13.6.3 更新博客帖子显示模板 448

13.7 小结 450

第14章 部署与维护 452

14.1 应用日志 452

14.1.1 通过E-mail向管理员通知重大错误 452

14.1.2 使用应用日志 456

14.2 网站错误处理 456

14.2.1 错误处理的目标 458

14.2.2 处理分派前错误 458

14.2.3 运行时错误 462

14.3 网站管理 466

14.3.1 管理区特性 466

14.3.2 实现管理 467

14.4 应用部署 468

14.4.1 不同服务器有不同配置 469

14.4.2 用rsync部署应用文件 472

14.5 备份和恢复 473

14.5.1 导出数据库 473

14.5.2 导入数据库 474

14.6 小结 474