首页>参考读物>计算机科学与技术>综合

PHP精粹:编写高效PHP代码
作者 : (美)Lorna Mitchell, Davey Shafik, Matthew Turland 著
译者 : 彭冲 胡琳 译
丛书名 : 华章程序员书库
出版日期 : 2012-10-08
ISBN : 978-7-111-39907-0
定价 : 59.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 250
开本 : 16
原书名 : PHP Master: Write Cutting-Edge Code
原出版社: OreillyUK
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

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

图书特色

经过近20年的发展,PHP已经成为最受欢迎、使用最广泛的Web开发技术之一。在全球,基于PHP及其相关技术构建的Web站点已经超过70%。和大多数其他技术一样,PHP开发的门槛不高,但是要修炼成为PHP高手绝非易事,这是因为它不仅涉及的知识广泛,而且有些细分领域深奥难懂,需要深入钻研和依赖积累丰富的实践经验。
本书与市面上已有的其他同类书区别在于,它并没有系统地讲解PHP开发的所有知识点,而是选取了数据库、API、设计模式、安全性、应用程序性能、自动化测试、质量保证等专题知识来深入剖析和讲解,这些知识是正在进阶路上的PHP程序员需要重点掌握的。作者把自己多年在实际开发中总结出来的经验和最佳实践都融入了这本书,旨在让想提高开发水平的PHP工程师在学习和工作中少走弯路,能为他们编写高效的PHP代码提供有效的指导!

本书主要内容:
重新阐释OOP、对象、函数、接口、异常等面向对象编程中的核心概念和技术;
深入分析Web应用中的数据持久化、数据存储、MySQL的使用、数据库对象、PDO、设计和排序等与数据库相关的核心知识;
详细讲解Web API及其使用方法;
涵盖PHP开发中重要的设计模式(包括单例模式、注册表模式、工程模式、迭代模式等)及其使用原则;
阐述编写安全PHP代码的最佳实践,包含跨站点脚本、会话劫持、SQL注入、暴力破解等方面的内容;
PHP应用的单元测试、数据库测试、系统测试、负载测试等;
PHP应用的质量保证,包含质量测量、编码标准、源代码管理、自动部署等内容。

本书在内容的组织方式上并不是一本呆板的教材,它不仅通过大量能授人以渔的实例阐述了上面这些重要的知识点,而且提供了大量实用的工具、方法和技巧。读者不仅能掌握一些重要知识的技术细节,而且能学习逐层剖析、层层递进地解决问题的思路,甚至可以学习如何查找资料、获取帮助的方法,帮助读者培养规范、科学的开发习惯。


作者简介

Lorna Mitchell
资深PHP技术专家,常驻英国利兹的PHP顾问,从事软件开发相关工作多年,尤其擅长与数据和API相关的知识。活跃于PHP社区,是美国西北部PHP技术社群的组织者,曾组织过多次社团会议并发表演讲,是开源项目Joind.in的领导者。她还是一位技术作家,热衷于分享自己的经验,经常在多种流行杂志和网站上发表技术文章。
Davey Shafik
资深LAMP技术专家,精通PHP,在HTML、CSS、JavaScript等Web相关技术领域也积累了十分丰富的经验。他还是一位经验丰富的技术作家,不仅发表了大量的技术文章,而且著有《The PHP Anthology: 101 Essential Tips, Tricks & Hacks》和《PHP Architect’s Zend PHP 5 Certification Study Guide》等著作。
Matthew Turland
资深PHP技术专家,有近10年PHP开发经验,是PHP 5和Zend Framework的Zend认证工程师。他是Zend Framework、 PHPUnit和Phergie等PHP开源项目的参与者,为这些项目撰写了大量文章。他还是一位经验丰富的技术作家,不仅撰写了《PHP Architect’s Guide to Web Scraping with PHP》等著作,而且还在《PHP Architect》等杂志上发表了大量文章。

图书前言

本书是针对PHP中级开发者的,即度过新手阶段并且希望提高技能的开发人员。我们的目的是帮助开发者在多个领域完善和提高自己的技能,因此我们在本书中精选了对开发者提升职业技能大有裨益的主题。
  我们知道,本书中至少有一部分内容是你在工作中曾经遇到过的,但是即使是你熟悉的内容,也值得再次研读。PHP语言也许比其他语言更加吸引各领域的人们。没有受过专业计算机教育的读者同样适合阅读本书。因此,积极地使用本书推荐的技术和方法,深入地阅读下面的章节,你会发现一些新的解决方案、新的理论知识。在日常工作实践中吸取经验也许需要很长时间才能取得进步,如果想快速汲取实战经验,打下牢固基础,阅读本书是个不错的选择。
  本书可以帮助你从一个称职的网络开发者提升成为一名自信的网络工程师,即拥有丰富的实践经验,并且能够可靠而迅速完成工作的人。因为我们大家都一样,使用PHP作为一种谋生手段,所以我们在本书中使用“怎样去做”的实例讲解方法,希望用真实的案例向你提供实用的建议。
  总之,我们希望你在本书找到所需要的内容,阅读顺利。
本书读者对象
  如前所述,本书是为中级开发者所写,这意味着你已经具备牢固的PHP基础,其中包括代码语法规则,函数和变量如何运作,如何构建像foreach、if/else这样的流程控制语句,以及如何处理服务端脚本和客户端标记(例如HTML表单)。我们不会对这些基本原理老调重弹,但即便你非常熟悉书中提及的许多概念,你还是会学到很多改进创建服务器端应用程序的新方法。
  我们准备使用面向对象编程(Object Oriented Programming,OOP)创建游戏,如果你早就知道这个术语,通过本书你会学到更多相关知识!众所周知,OOP是一个优秀的PHP开发工作者必须遵循的标准,可使你编写高效的代码。你将学习如何有效地利用OOP,来创建类以及实例化对象,让代码更加简洁,创建模板用于将来项目所需。如果你已经熟悉了面向对象的开发方法,阅读开篇的章节可以帮助进行复习;如果你还没有完全了解OOP,那么阅读本书一定会让你获益匪浅。
  另外,我们将学习使用数据库,这是Web开发中数据存储的关键模式。即便你对数据库及其工作原理基本上了解,深入研究数据库的连接方式也很必要,本书还将努力探索MySQL的世界,因为它是用于数据库交互信息最广泛的查询语言。
  最后,本书总结了一些极好的方法来优化、测试和部署代码。虽然其中一些观念稍嫌超前,但我们会尽量提供比较精确的解释。熟悉命令行、接口等相关技术对理解这些章节更有帮助。
本书主要内容
  本书由8章和3个附录组成,大多数章节的组织是按照内容顺序进行的,每一章都论述一个主题。你可以选择按照章的顺序依次阅读,也可以直接阅读你感兴趣的内容。
  第1章 面向对象编程
  我们首先论述面向对象编程由哪些部分组成,如何将值和函数关联组成一个编程单元:对象。该章开始主要介绍如何声明类以及如何实例化对象,然后将深入研究继承、接口以及异常处理。到该章的结尾时我们将获得一幅详细面向对象编程蓝图。
  第2章 数据库
  互联网是一个动态的世界,用户只能浏览简单网页的日子一去不复返,数据库已成为交互式服务器端技术开发的关键组成部分。该章将研究如何用PDO连接数据库,如何存储数据和设计数据库范式。另外,我们将着重讲解基于结构化查询语言的MySQL以及与数据库交互的命令。
  第3章 API
  应用程序编程接口(API)是Web网页以外的另一种传输数据的方式,用API可以链接到某个特定的服务、应用程序或者公开的模块,以便与其他应用程序交互。我们将在该章学习如何利用它们组合系统,研究面向服务架构(SOA)、HTTP的请求和响应,替代Web服务。
  第4章 设计模式
  在现实世界里,人们从不断重复的工作中总结出方法和经验,在编程中,称其为设计模式,它帮助用户优化开发和维护工作。该章将涵盖很多设计模式,包括单例模式、工厂模式、迭代模式以及观察者模式,还将介绍MVC(Model-View-Controller)模式是如何架构和支撑一个良好的应用程序。
  第5章 安全性
  在那些心怀不轨的人手中,任何技术都有可能在某种程度上用于恶意行为,因此每个优秀的程序员都必须掌握确保其系统安全可靠的技术,而且客户对安全性也有要求。该章将涵盖很多已知的攻击技术,包括跨站脚本、会话劫持、SQL注入,并讲解如何保护你的系统不被恶意程序侵入。我们将学习如何对密码加密,抵御暴力破解,并深入解析PHP格言:“过滤输入,避免输出。”
  第6章 性能
  应用程序变得越强大,就越需要测试其工作性能。在该章中,我们将学习如何使用像ApacheBench和Jmeter这样的工具对代码进行“压力测试”,这些工具可帮助快速优化服务器配置,简化文件系统以及分析代码运作。
  第7章 自动测试
  一个应用程序的功能发生变化时,其行为也会随之发生改变。自动测试的目的是为了确保应用程序的预期行为和实际行为是一致的。在该章中,我们将学习如何针对具体的应用程序进行单元测试、数据库测试、系统测试以及负载测试。
  第8章 质量保证
  谁都希望自己为创建应用程序所付出的努力不白费,且自己的项目能够达到一个很高的水平。在该章中,我们将学习如何用静态分析工具或者资源来测试质量,优化代码,完善文档,以及如何在Web上部署健壮性项目。
  附录A PEAR和PECL
  在PEAR和PECL库中提及了很多工具,许多PHP开发者仍在使用它们。这个附录对这些设置进行充分的说明,你也不再有理由忽视其中的重要内容了。
  附录B PHP标准库
  标准的PHP类库是一个传统的、不太知名的扩展,它与PHP标准配套,包含了很多有用的工具。这个附录可作为第4章的补充材料,很值得一读。
  附录C 进一步参考信息
  下一步要怎么做?一个优秀的PHP开发者会不断提高自己的技能,这里会介绍一个非常实用的资源列表,包括各种社区和专业会议。
获取帮助途径
  当你有疑问时,SitePoint有一个由Web设计者和开发者组成的活跃社区随时为你提供帮助,在那里我们还提供一个本书勘误表,你可以随时查阅最近的更新。
SitePoint论坛
  在SitePoint Forums论坛上你可以提出任何与Web开发相关的问题,同样你也可以解答问题。这是一个论坛网站,有人提问,有人回答,有人既提问也回答。在这里你可以和他人分享知识和经验,为社区作出贡献。这里有很多有趣而又经验丰富的网页设计师和开发者。这是一个学习的好地方,一旦你提问,便会得到迅速的解答。
本书的网站
  本书的配套网站为:http://www.sitepoint.com/books/phppro/,该网站会为本书提供以下支持:
代码存档
  如果你想通过本书提高技能,那么还需要在代码存档中标记很多注释,这些代码存档是一个可以下载的ZIP文件,包含本书全部示例的源代码。如果你想省事,那就直接下载这些存档。
更新和勘误表
  没有一本书是完美无缺的,认真的读者在书中肯定会发现至少一至两处错误。在本书网站的勘误表上将始终提供更正印刷和代码错误的最新信息。
SitePoint简报
  除了出版PHP技术书籍,SitePoint还通过电子邮件免费寄发如SitePoint Tech Times、SitePoint Tribune、SitePoint Design View等电子简报。通过它们,你能了解到与网络开发技术相关的所有最新消息、产品发布、发展趋势、建议以及技术。你可以在http://www.sitepoint.com/newsletter/注册一个或多个SitePoint会员以查阅相关资料。
SitePoint播客
  欢迎读者加入SitePoint播客的队伍,这里有网络开发者和设计者所需的新闻、名人专访、专业见解以及有创意的想法。我们会讨论最新的网络行业话题,邀请嘉宾讲演人作报告,访问网络行业最顶尖的人物。你可以直接访问http://www.sitepoint.com/podcast/,或者通过iTunes订购观看最新或者之前的播客。
读者反馈
  如果你的疑问通过SitePoint论坛得不到解答,或者出于其他原因想直接和我们联系,你可以发送邮件至books@sitepoint.com,我们建立了人员精良的邮件支持系统来跟踪解答你的质询,如果这些支持团队成员仍无法解答你的问题,他们会直接将你的邮件转发给我们。欢迎你对本书提出意见以及建议。
致谢
  Lorna Mitchell
  非常感谢那些鼓励我将写书的想法付之以实现的朋友。同时也要感谢那些人们,他们用一些小计谋促使我意识到,自己不仅可以开发软件,还可以撰写书籍。SitePoint团队非常了不起,因为我完全是一个新手,他们不仅逐字逐句地帮我审阅书稿,更帮助我渡过了艰难的写书历程。最后要感谢本书的合著者,我自豪地称他们为朋友,我们共同分享这段写书的经历,你们两个都是我心目中的摇滚明星。
  Davey Shafik
  首先,我非常感谢我的妻子,Frances,写作本书占用了我很多晚上和周末的休息时间。也要感谢本书非常有才华的合著者,我很幸运能和他们成为朋友。感谢优秀的SitePoint团队为写作本书付出的努力。最后,感谢那些花时间阅读本书的读者,希望本书不仅能解答你的问题,更能够敞开你的心扉,迎接更好的未来。
  Matthew Turland
  2002年,我第一次发现了PHP,并于2006年加入PHP社区。我希望所有的技术来之于民也能用之于民。PHP社区是我所发现的最好的软件开发者社区之一,我很荣幸成为其中一分子。感谢与我一起分享开发经验的人们,尤其是这些年来一直给我帮助和指导的朋友们。感谢本书杰出的合著者,Lorna和Davey,没有比他们更好的合作伙伴以及更能分享经验的朋友了。感谢优秀的SitePoint团队(Kelly Steele、Tom Museth、Sarah Hawk、Lisa Lang),他们将我们以及各篇文章结合在一起,出版了你所看到的完美书籍。还要感谢本书的审校者Luke Cawood,还有我的朋友Paddy Foran和Mark Harris,以及在写作阶段对本书提出反馈意见的人们。最后,感谢所有的读者,希望你们喜欢本书,并帮助你提高PHP技术。
本书中使用的约定
  本书使用不同的排版样式表示不同类型的内容。首先,本书是关于PHP的,在本书大部分代码示例中,省略了类似于(< php and >这样的开始和结束标记,这会便于你将代码内容直接插入到源文件中运行。唯一的例外是将PHP标记到旁边显示,比如XML或HTML。
  请看具体的示例。
代码示例
  本书中的代码将使用固定宽度的字体显示,如:

  如果你想在本书的代码存档中查找相应的代码,文件名将显示在程序列表的顶部,如:
  example.php

  如果文件中只有部分内容,那么表示这个词是一个引用:
  example.php (excerpt)

  如果在目前示例中插入新代码,那么新代码会加粗显示:

  当现有代码需要上下文的内容时,与其重复所有的代码,不如将不相关的代码用垂直省略号代替:

  由于页面的限制,本该在一行中显示的代码不得不换行显示时,用一个符号表示后面的内容是紧接着上一行中断的地方:而符号表示这里存在一个换行符,在代码中应该忽略它。

提示、注释和警告
  小指针表示会提供有用的小提示。
  注释是有用的旁白,它们与本书主题相关,但不是关键性的内容。你只需将它们视为某些知识的小花絮。
  上面的图标表示需要注意的要点。
  警告部分将着重强调那些容易误导你进入陷阱的地方。

上架指导

计算机\程序设计

封底文字

经过近20年的发展,PHP已经成为最受欢迎、使用最广泛的Web开发技术之一。在全球,基于PHP及其相关技术构建的Web站点已经超过70%。和大多数其他技术一样,PHP开发的门槛不高,但是要修炼成为PHP高手绝非易事,这是因为它不仅涉及的知识广泛,而且有些细分领域深奥难懂,需要深入钻研和依赖积累丰富的实践经验。
本书与市面上已有的其他同类书区别在于,它并没有系统地讲解PHP开发的所有知识点,而是选取了数据库、API、设计模式、安全性、应用程序性能、自动化测试、质量保证等正在进阶路上的PHP程序员需要重点掌握的专题知识来深入剖析和讲解。作者们把自己多年在实际开发中总结出来的经验和最佳实践都融入了这本书,旨在让想提高开发水平的PHP工程师在学习、工作中少走弯路,能为他们编写高效的PHP代码提供有效的指导!
本书主要内容:
(1)重新阐释OOP、对象、函数、接口、异常等面向对象编程中的核心概念和技术;
(2)深入分析Web应用中的数据持久化、数据的存储方法、MySQL的使用、数据库对象、PDO、设计和排序等与数据库相关的核心知识;
(3)详细讲解Web API及其使用方法;
(4)涵盖PHP开发中重要的设计模式(包括单例模式、注册表模式、工程模式、迭代模式等)及其使用原则;
(5)阐述编写安全PHP代码的最佳实践,包含跨站点脚本、会话劫持、SQL注入、暴力破解等方面的内容;
(6)PHP应用的单元测试、数据库测试、系统测试、负载测试等;
(7)PHP应用的质量保证,包含质量测量、编码标准、源代码管理、自动部署等内容;

本书在内容的组织方式上并不是一本呆板的教材,它通过大量能授人以渔的实例阐述了上面这些重要的知识点,而且还提供了大量实用的工具、方法和技巧。读者不仅能掌握一些重要知识的技术细节,而且还能学到作者逐层剖析、层层递进地解决问题的思路,甚至可以学习如何查找资料、获取帮助的方法,帮助读者建立规范、科学的开发习惯。

作者简介

(美)Lorna Mitchell, Davey Shafik, Matthew Turland 著:暂无简介

译者简介

彭冲 胡琳 译:暂无简介

译者序

本书是为PHP中级开发者量身定做的,从面向对象编程的基本概念开始,贯穿了数据库、设计模式、安全性以及自动测试、质量保证等各方面内容。本书的作者都是PHP资深工程师,他们在PHP领域有多年工作经历,积累了丰富的实践经验,而本书正是融合了这些宝贵经验而形成的。本书并不是一本呆板的教材,而是通过“怎样去做”的实例讲解方法由浅入深地介绍了PHP的各个重要知识点,还提供了许多非常好且实用的工具、方法及技巧。同时本书还提供了阅读的配套网站以及大量的网上资源,包括社区、网站、论坛以及专业会议,当我们遇到技术瓶颈或者需要补充相关方面的知识时,可通过以上多种途径寻求帮助。
  因为PHP是开源的,所以有很多开源框架都提供了对它的支持,如ZEND、SMARTY等。PHP的成本很低,相比起.NET等现在很流行的开发技术,PHP的开销要低得多。PHP是免费的,对服务器配置的要求也不是很高,因此非常适合中小型网站的开发。PHP简单易学,非常适合缺乏计算机语言编程经验的人学习。
  我们很荣幸能有机会承担本书的翻译工作。翻译本书也使我们系统地温习了PHP语言。同时深深体会到,具有丰富的技术实践加上良好的英语基础并不等于完美的翻译。因为是在业余时间进行翻译,所以尤感艰辛。在这三个月的时间里,逛街购物、电影电视等娱乐活动基本与我们绝缘,每天晚上匆匆忙完家务便立即坐在电脑前。对我们而言,一个礼拜七天都是工作日。我们常常会为一个术语、一个句子绞尽脑汁,并查阅大量资料,力图译文能正确、贴切地反映原文的意思,能够让句子、段落更符合中国人的语言习惯。我们真诚地希望你能从本书中有所收获,这是作者的初衷,也是我们的愿望。
  感谢华章编辑的热情鼓励,让我们能有信心开始并完成本书的翻译工作。同时我们也感谢所有为本书出版付出心血的人们。
  由于时间仓促,且我们的经验和水平有限,译文难免有不妥之处,恳请读者批评指正。

图书目录

译者序
前 言
第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以及protected12
1.5.1 public13
1.5.2 private13
1.5.3 protected13
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连接到MySQL29
2.4.2 从表中选择数据30
2.4.3 数据提取模式30
2.4.4 参数和预处理语句31
2.4.5 绑定值和预处理语句的变量32
2.4.6 插入一行并获取ID34
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 事务和PDO38
2.6.2 存储过程和PDO39
2.7 设计数据库39
2.7.1 主键与索引40
2.7.2 MySQL解析40
2.7.3 内部连接43
2.7.4 外部连接43
2.7.5 聚合函数和Group By44
2.7.6 规格化数据46
2.8 数据库—排序46
第3章 API47
3.1 开始之前47
3.1.1 使用API工具47
3.1.2 添加API到你的系统47
3.2 面向服务的架构47
3.3 数据格式48
3.3.1 使用JSON49
3.3.2 使用XML50
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和SOAP62
3.5.2 使用WSDL描述SOAP服务63
3.6 调试HTTP65
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.8 Ajax和Web服务69
3.9 开发和使用RESTful服务75
3.9.1 超越Pretty URL75
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 Traits86
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 SSL131
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 安装XHProf152
6.5.2 安装XHGui155
6.6 本章小结161
第7章 自动测试163
7.1 单元测试163
7.1.1 安装PHPUnit163
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 ab187
7.4.2 Siege188
7.5 本章小结189
第8章 质量保证190
8.1 使用静态分析工具测量质量190
8.1.1 phploc190
8.1.2 phpcpd191
8.1.3 phpmd192
8.2 编码标准193
8.2.1 使用PHP代码探测器检查编码标准193
8.2.2 查看违反编码标准的地方195
8.2.3 PHP代码探测器标准196
8.3 文档和代码196
8.3.1 使用phpDocumentor197
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 自动部署和Phing209
8.6 准备部署211
附录A PEAR和PECL212
附录B PHP标准库229
附录C 进一步参考信息236

教学资源推荐
作者: (美)Roger S.Pressman 著
作者: 王新年 张涛 编著
作者: (加)Dennis Roddy 著
作者: 黄建文 章鸣嬛 编著 孙德文 主审
参考读物推荐
作者: 张昌龙 辛永平 等编著
作者: [美]加博尔·萨博(Gabor Szabo)[美]格尔·波拉特坎(Gungor Polatkan) [美]P. 奥斯卡·柏金(P. Oscar Boykin) [英]安东尼奥斯· 查基奥普洛斯 (Antonios Chalkiopoulos)著
作者: 树阳 编著
作者: 吴孔辉 尹思杰 高园 著 夏峰 审校