PHP Web 2.0开发实战

出版时间:2008-10-1  出版社:人民邮电出版社  作者:泽瓦斯  页数:475  译者:苏金国  
Tag标签:无  

前言

  如今,大多数关于web开发的书和文章都仅涉及开发生命周期中的某一个或某一些方面,只是专门讨论一些特定特性,而无法让读者从整体上有全面的了解。  在这本书中,我们将开发一个完整的Webl立用。虽然开发中将会用到一些第三方库和工具,但我们将从零开始逐步完成这个应用的开发。  这本书的重点是Web 2.0,这个词已经盛行多年,通常是指具备某些特点的网站或wleb应用。这此特点包.括:正确使用HTML,/XHTMLL CSS和其他标准;使用AjaX(Asynchronous JavaScript and XML,,异步JavaScr5pth和IXML),响应迅速,而无需页面完全刷新;使用RSS支持网站内容聚合;增加wiki、博客或标签。  并非所有人都是“Web 2.0”这个流行语的拥护者,尽管如此,这个词确实标志着Web开发向前迈进了一大步。另外,尽管不是每一个人都需要在自己的网站上提供一个wiki或博客,但这里所列出的其他特点(如正确地使用标准)可以为网站的开发奠定扎实的基础,应当为所有开发人员所采纳,而不管他们希望将网站或Web立用归入哪一类。  之所以写这本书,主要是因为我希望能够与其他用户分享构建网站的一些经验。时至今日,我作为一名Web开发人员已经有10年之久(特别是最近7年更是全身心投入),对与Web相关的许多方面已经有了深入的理解,有许多经验教训希望能够提供给刚入门或者力求提高水平的开发人员。  读者对象  这本书主要是为中到高级水平的.PHP程序员编写。尽管不同层次的程序员都能从中获益,不过我们会以很快的进度深入讨论,因此预先对:PHP有一定了解还是很有必要的。  正如前面所说,如果你刚接触PHP,这本书肯定能让你受益非浅,因为对于你先前一知半解的技术,我们会更正式更规范地加以描述,并展示处理各种问题的不同方法。

内容概要

  《图灵程序设计丛书?PHP Wed2.0开发实战》通过一个完整的Web2.0应用——带有动态图库、搜索和地图功能的博客系统详细介绍了Web开发的全过程。首先讨论了Web应用的规划与设计,然后逐章实现各个具体特性,包括网站主页、用户主页、用户注册页面、账户登录和管理页面、用户博客系统、网站搜索以及应用管理等,最后介绍部署和维护。《图灵程序设计丛书?PHP Wed2.0开发实战》适合中、高级的PHP程序员阅读。

作者简介

  Quentin Zervaas,资深PHP程序员。曾为世界各地众多客户开发了许多Web应用,其中Recite CMS已经用于澳大利亚许多大公司。他还是知名PHP开发资源网站PhpRiot(WWW.phpriot.com)的维护者。

书籍目录

第1章 应用规划与设计1.1 什么是Web 2.01.2 数据库连接1.3 网站模板1.4 网站特性1.4.1 网站主页和用户主页1.4.2 用户注册1.4.3 账户登录和管理1.4.4 用户博客1.4.5 网站搜索1.4.6 应用管理1.5 开发的其他方面1.5.1 搜索引擎优化1.5.2 PHPDoc风格的注释1.5.3 安全性1.5.4 应用日志1.5.5 可维护性和可扩展性1.6 版本控制和单元测试1.7 小结第2章 建立应用框架2.1 Web服务器配置2.1.1 操作系统2.1.2 安装Apache HTTP服务器2.1.3 安装MySQL 52.1.4 安装PHP 5.2.32.2 应用文件系统结构2.2.1 Web根目录2.2.2 数据存储目录2.2.3 PHP类目录2.2.4 模板目录2.2.5 完整的目录结构2.3 安装Zend框架2.4 配置Web服务器2.4.1 在Linux上创建虚拟主机2.4.2 在Windows上创建虚拟主机2.4.3 重启Web服务器2.5 建立数据库2.6 使用MVC模式2.6.1 将应用逻辑与表示逻辑分离2.6.2 将所有请求定向到index.php2.6.3 Zend_Controller类简介2.6.4 Zend_Controller如何处理请求2.6.5 创建IndexController2.7 定义应用设置2.8 连接数据库2.9 Smarty模板引擎2.9.1 为什么不使用其他模板引擎2.9.2 下载和安装Smarty2.9.3 利用Zend_Controller自动显示视图2.9.4 Smarty与网站控制器集成2.10 增加日志功能2.11 小结第3章 用户认证、授权和管理3.1 创建用户数据库表3.1.1 时间戳3.1.2 用户个性化信息3.2 Zend_Auth简介3.2.1 实例化Zend_Auth3.2.2 使用Zend_Auth完成认证3.3 Zend_Acl简介3.4 结合Zend_Auth、Zend_Acl和Zend_Controller_Front3.5 用DatabaseObject管理用户记录3.5.1 DatabaseObject_User类3.5.2 使用DatabaseObject_User3.6 管理用户个性化信息3.6.1 使用Profile_User3.6.2 集成Profile_User和DatabaseObject_User3.7 小结第4章 用户注册、登录和注销4.1 为应用增加用户注册功能4.1.1 为用户注册创建表单处理器4.1.2 显示注册表单并处理注册4.1.3 为用户注册表单增加CAPTCHA4.1.4 增加E-mail功能4.2 实现账户登录和注销4.2.1 创建登录模板4.2.2 增加account控制器login动作4.2.3 记录成功和失败登录4.2.4 用户注销账户4.3 处理忘记口令的情况4.3.1 重置用户口令4.3.2 重置口令的函数4.4 实现账户管理4.4.1 创建账户主页4.4.2 更新网站导航4.4.3 允许用户更新信息4.5 小结第5章 Prototype与Scriptaculous简介5.1 下载和安装Prototype5.2 选择文档对象模型中的对象5.2.1 $()函数5.2.2 getElementsByClassName()函数5.2.3 $$()函数5.2.4 getElementsBySelector()函数5.3 Prototype的Hash对象5.4 其他元素扩展5.4.1 显示和隐藏元素5.4.2 获取元素尺寸5.4.3 管理元素类5.4.4 用Prototype管理字符串5.5 Prototype中的Ajax操作5.5.1 Ajax请求选项5.5.2 Ajax回调函数5.5.3 JSON5.5.4 一个Ajax.Request例子5.6 Prototype中的事件处理5.6.1 观察事件5.6.2 查找事件出现在哪个元素上5.6.3 取消事件5.7 利用Prototype创建JavaScript类5.7.1 创建类5.7.2 为函数调用绑定对象5.8 从Prototype转向Scriptaculous5.8.1 预置控件5.8.2 拖放5.8.3 视觉效果5.8.4 DOM元素构建器5.8.5 JavaScript单元测试5.9 下载和安装Scriptaculous5.10 在一个实用例子中结合使用Prototype、Scriptaculous、Ajax和PHP5.10.1 创建主HTML页面:index.php5.10.2 为应用设置样式:styles.css5.10.3 创建和填充数据库:schema.sql5.10.4 服务器端管理列表项:items.php5.10.5 在服务器端处理Ajax请求:processor.php5.10.6 创建客户端应用逻辑:scripts.js5.11 小结第6章 为Web应用设置样式6.1 增加页面标题和浏览路径6.1.1 Breadcrumbs类6.1.2 生成URL6.1.3 为各个控制器动作设置标题和浏览路径6.1.4 创建一个Smarty插件输出浏览路径6.1.5 显示页面标题6.2 在应用中集成设计6.2.1 创建静态HTML6.2.2 将HTML标记移入Smarty模板6.3 构建CSS6.3.1 指定媒体类型和加载CSS文件6.3.2 创建应用CSS6.3.3 创建只打印样式表6.3.4 完整的应用样式表6.4 为应用Web表单设置样式6.5 加载Prototype和Scriptaculous6.6 实现客户端表单验证6.6.1 为CustomControllerAction类增加JSON支持6.6.2 修改表单处理器6.6.3 修改注册控制器动作6.6.4 创建JavaScript表单验证器6.6.5 加载UserRegistrationForm类6.7 小结第7章 构建博客系统7.1 创建数据库表7.2 建立DatabaseObject和Profile类7.2.1 创建DatabaseObject_BlogPost类7.2.2 创建Profile_BlogPost类7.3 创建控制器管理博客帖子7.3.1 扩展应用权限7.3.2 BlogmanagerController动作7.3.3 链接博客管理系统7.4 创建和编辑博客帖子7.4.1 创建博客帖子提交表单模板7.4.2 在editAction()中实例化FormProcessor_BlogPost7.4.3 实现FormProcessor_BlogPost类7.4.4 为博客帖子生成一个永久链接7.4.5 过滤提交的HTML7.4.6 创建一个新博客帖子7.5 预览博客帖子7.5.1 创建预览动作7.5.2 实现预览模板7.5.3 请求对用户动作的确认7.6 更新博客帖子的状态7.6.1 完成setstatusAction()7.6.2 通知用户7.7 小结第8章 扩展博客管理系统8.1 在博客管理系统索引页面上列出帖子8.1.1 从数据库获取博客帖子8.1.2 将最新帖子和各月概要赋给模板8.1.3 在模板中显示最新帖子8.1.4 显示各月概要8.2 为博客各月概要增加Ajax功能8.2.1 创建Ajax请求输出8.2.2 BlogMonthlySummary JavaScript类8.2.3 安装BlogMonthlySummary类8.2.4 通知用户内容已更新8.3 集成WYSIWYG编辑器8.3.1 下载并安装FCKeditor8.3.2 配置FCKeditor8.3.3 在博客编辑页面中加载FCKeditor8.4 小结第9章 个人化用户区9.1 控制用户设置9.1.1 为用户提供定制设置9.1.2 处理对用户设置的修改9.1.3 创建默认用户设置9.2 UserController类9.2.1 将请求路由到UserController9.2.2 处理对UserController的请求9.3 显示用户的博客9.3.1 显示博客索引页面9.3.2 显示单个博客帖子9.3.3 生成博客归档链接9.3.4 显示各月归档9.4 填充应用主页9.4.1 加载最新公开帖子9.4.2 实现应用主页9.5 小结第10章 实现Web 2.0特性10.1 标签10.1.1 实现标签系统10.1.2 管理博客帖子标签10.1.3 在用户博客上显示用户的标签10.1.4 显示标签空间10.1.5 在各帖子上显示标签10.2 Web提要10.2.1 Web提要的数据格式10.2.2 用Zend_Feed创建一个Atom提要10.2.3 为UserController增加提要10.2.4 链接到提要10.2.5 其他提要选项10.3 微格式10.3.1 使用微格式的例子10.3.2 为什么使用微格式10.3.3 对标签标记微格式10.4 允许用户创建公开个性化数据10.4.1 允许用户创建公开个性化数据10.4.2 显示用户的个性化数据10.5 小结第11章 一个动态图库11.1 存储上传文件11.1.1 为图像数据创建数据库表11.1.2 用DatabaseObject控制上传图像11.2 上传文件11.2.1 设置表单编码11.2.2 增加表单11.2.3 指定文件输入类型11.2.4 设置最大文件大小11.2.5 处理上传文件11.3 发送图像11.4 调整图像大小11.4.1 创建缩略图11.4.2 将缩略图生成工具链接到图像动作处理程序11.5 管理博客帖子图像11.5.1 自动加载博客帖子图像11.5.2 在帖子预览页面上显示图像11.5.3 删除博客帖子图像11.5.4 使用Scriptaculous和Ajax删除图像11.5.5 删除帖子时删除图像11.5.6 重排博客帖子图像的顺序11.6 在用户博客上显示图像11.6.1 扩展GetPosts()函数11.6.2 在博客索引页面上显示缩略图11.6.3 在博客详细信息页面上显示图像11.6.4 用Lightbox显示更大的图像11.7 小结第12章 实现网站搜索12.1 Zend_Search_Lucene简介12.1.1 与MySQL全文索引比较12.1.2 Zend_Search_Lucene字段类型12.1.3 字段命名12.2 建立应用内容的索引12.2.1 对多种类型的数据建立索引12.2.2 创建新Zend_Search_Lucene_Document12.2.3 获取索引位置12.2.4 构建完整索引12.2.5 对一个博客帖子建立索引和解除索引12.2.6 触发搜索索引更新12.3 创建搜索工具12.3.1 增加搜索表单12.3.2 处理搜索请求12.3.3 查询搜索索引12.3.4 显示搜索结果12.3.5 搜索类型12.4 为搜索工具增加自动完成功能12.4.1 提供搜索建议12.4.2 创建一个动作处理程序返回搜索结果12.4.3 获取搜索建议12.4.4 加载SearchSuggestor类12.4.5 显示搜索建议12.4.6 为结果增加鼠标导航12.4.7 为结果增加键盘导航12.5 小结第13章 集成Google Maps13.1 Google Maps特性13.1.1 地理编码13.1.2 显示地图13.1.3 控制地图13.2 集成规划13.2.1 Google Maps的局限性13.2.2 浏览器兼容性13.2.3 文档和资源13.2.4 创建Google Maps API键13.3 增加位置存储功能13.3.1 创建数据库表13.3.2 创建DatabaseObject_BlogPostLocation类13.3.3 修改博客帖子来加载位置13.4 创建第一个地图13.4.1 创建一个新博客管理系统控制器动作13.4.2 显示第一个Google地图13.5 在地图上管理位置13.5.1 处理位置管理Ajax请求13.5.2 创建地址查找表单13.5.3 扩展BlogLocationManagerJavaScript类13.5.4 使用BlogLocationManager13.6 在用户公开博客上显示地图13.6.1 使用geo微格式输出位置13.6.2 创建BlogLocations类13.6.3 更新博客帖子显示模板13.7 小结第14章 部署与维护14.1 应用日志14.1.1 通过E-mail向管理员通知重大错误14.1.2 使用应用日志14.2 网站错误处理14.2.1 错误处理的目标14.2.2 处理分派前错误14.2.3 运行时错误14.3 网站管理14.3.1 管理区特性14.3.2 实现管理14.4 应用部署14.4.1 不同服务器有不同配置14.4.2 用rsync部署应用文件14.5 备份和恢复14.5.1 导出数据库14.5.2 导入数据库14.6 小结

章节摘录

  第1章 应用规划与设计  1.1 什么是Web 2.0  到底怎样才能称一个网站是“Web 2.0”网站呢?关于这个问题有很多不同的观点,以至于很难一针见血地给出确切的定义。不过,下面列出了Web 2.0网站通常需要具备的一些特性。  使用标准兼容的HTML和CSS。这个特性可以保证网站跨平台工作,并且有助于提高可访问性。这包括使用微格式生成能够跨多种平台工作的友好的HTML(有关内容将在第10章介绍)。  使用Ajax提供富用户界面。通过使用XMLHttpRequest在后台完成烦琐的操作,Web页面可以提供更丰富的功能,而且更为直观。  注解 ×HLHttpRequest是一个Javascript API,允许在用户查看网页时发出一个后HTTP请求。这说明,可以根据来自服务器的一个响应更新当前页面,而无需用户导航到网站的另一个页面。“建立一个Ajax请求” (或类似的说法)一般是指使用XMLHttpRequest在后台完成一个HTTP请求。  使用Web提要和Web服务共享数据。用户喜欢使用Web提要(如RSS或Atom)来聚集多个提要,从而当他们喜欢的网站内容有更新时就能轻松地得到更新内容。另外,web服务允许一个网站使用来自其他网站的数据(例如,这里将使用Google Maps在我们的网站上显示地图)。  结合社交网络工具。博客和论坛使得用户之间可以相互通信。  尽管这些特性或开发领域本身都并非新生事物,不过我们使用Web 2.0一词来描述综合了上述特性的新一代网站,其中充分使用了HTML和CSS,另外很可能利用Ajax和社交网络工具来改善网站界面。这些网站正是“名符其实”的Web 2.0网站。不过,这并不是说使用了其中某些特性的网站就一定是一个好网站。

编辑推荐

  《图灵程序设计丛书?PHP Wed2.0开发实战》由资深PHP专家撰写,不在基础知识上花费太多笔墨,而是引导读者从设计、规划开始。综合运用PHP、MySQL、CSS、HTML、JavaScript/Ajax等技术,实现各种必需的Web2.0特性,最终完成一个完整的典型Web2.0应用——功能丰富的多用户博客系统。书中提供了大量具有示范意义的代码,读者将直观地学到如何实际开发出用户登录、博客、搜索功能、动态图库、GoogleMaps集成、标签、Web提要等功能,如何在实战中应用ZendFramework、Smarty模板引擎、Prototype等JavaScript/Ajax框架以及微格式等技术。  Amazon五星图书,从零开始开发完整的典型Web2.0应用,迅速提升你的Web开发功力。  “读完《图灵程序设计丛书?PHP Wed2.0开发实战》后,我发现自己对Web开发和MVC模式的理解都已经今非昔比……强烈推荐此书!”  ——Amazon.com  “……一部极富启发性的PHP实战指导书,业界专家充分演示了如何使用ZendFramework、Smarty、Ajax等强大技术创建一流的网站。”  ——Slashdot.org  PHP已经成为主流Web开发语言。支撑着全球翘楚Facebook、Wikipedia在内的众多网站。然而,要在Web2.0时代取得竞争优势,PHP程序员面临着更大挑战,仅仅掌握语言本身,远远不够实战所需。

图书封面

图书标签Tags

评论、评分、阅读与下载


    PHP Web 2.0开发实战 PDF格式下载


用户评论 (总计0条)

 
 

 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7