前 言 PHP和MySQL已经在许多最流行的网站和开源应用程序中使用了很多年了。毫无疑问,Web站点在不断的演化中,现代的Web站点都是动态的,流行站点的用户数都在百万数量级。 本书讲述了在当今高需求的世界构建健壮、可扩展的应用程序所需的一些技术和技巧。开始的章节主要关注一些基本概念,包括: ●面向对象程序设计 ●设计模式 ●高级MySQL查询 后面的章节讲述的内容逐步深入,重点包括使用memcached(以及其他)技术进行缓存、使用Sphinx进行全文搜索、使用Gearman支持多任务等不断改进应用程序的性能。 当前,PHP程序员都不会惧怕亲自动手。当读者阅读本书时,可能正在使用C语言扩展PHP和MySQL。在PHP中我们讲述了扩展编写的方法,在MySQL中讲述了用户自定义函数(User Defined Function)。 本书还关注了在安全、优化和软件体系结构方面的关键技巧和最佳实践。在示例代码中假设读者已经具备相关的基础知识,因而省略了一些常见代码,以使得示例更加可读和专业。本书中的示例没有检查函数的返回值以判断是否有错误发生,因而建议不要将本书代码放到真实的服务器中;如果确实需要实践,首先要修改好,相信读者知道如何完成这些。 本书还讲述了使用PHP和MySQL编写任务关键的应用程序所需要的工具--包括高流量的应用程序。希望能够利用本书中讲述的一些技术创建自己的开源项目,最终能够为PHP和MySQL社团做出贡献。或者也许会使用本书帮助创建下一个PHP和MySQL的成功案例。 本书目标读者 本书的目的是讲述PHP和MySQL世界中的一些最高级话题。本书的读者是那些高级的PHP和MySQL用户,具备丰富的使用经验,并且成功地参与过几个项目。本书的目标读者包括: ●创建任务关键应用程序的程序员 ●创建支持成千数量级(或者百万数量级)用户的站点和应用程序的程序员 ●创建支持存储和访问大量数据或者需要大量处理的应用程序的程序员 ●希望学习设计模式、PHP扩展以及MySQL UDF的程序员 本书假设读者具备C语言的工作知识,至少编译过一到两个C语言的程序员(PHP和MySQL)。PHP扩展和MySQL用户自定义函数都是用C语言编写的。 本书内容由浅入深,包括了许多高级话题。即使读者不是高级的PHP、MySQL和C程序员也没关系,不过最好将一些其他的Wrox书籍放在手边作为参考书。 本书内容 PHP和MySQL都已经建立了许多可用的函数库和扩展,在单独一本书中不可能涵盖每一个主题。同样地,本书中并没有包含入门级的主题。相反,作者挑选了一些对每个专业的PHP和MySQL程序员都非常关键的主题。 本书内容如下所示: ●第1章~第3章是一些阅读本书其余部分必须要知道的有关概念的速成教学,包括设计模式、迭代器以及MySQL存储引擎之间的区别 ●第4章和第5章暂停基础知识,专注创建可扩展应用程序最重要的一个概念:缓存 ●第6章重新回顾了基本概念并接触到了一些高级MySQL主题 ●第7章和第8章深入探讨了使用C语言扩展PHP和MySQL,这两章是本书中唯一的不仅仅使用PHP或SQL语言编写代码的章节 ●第9章讲述了全文搜索并介绍了Sphinx的用法 ●第10章讲述了多任务,并且讨论了Gearman的用法 ●第11章和第12章讲述了高级重写规则、定制的会话处理以及用户安全等核心概念 ●第13章讲述了MySQL的INFORMATION_SCHEMA ●第14章进一步讲述了安全性 ●第15章和第16章讲述PHP和MySQL在Web应用程序之外的使用和优化调试 使用本书所必需的前提条件 除了希望学习“本书目标读者”中列出的技能外,还需要: ●PHP 5.3或者更高的版本,并且启用MySQL和MySQLi。最好能够从源代码进行编译(第8章)。然而,一些示例也可以运行在较旧的版本上 ●MySQL 5.1或者更高的版本。对于绝大多数的示例也可以替换为MariaDB或Drizzle ●配置启用了mod_rewrite的PHP Apache 2.0 Web服务器 使用Linux 如果使用Linux作为PHP和MySQL开发平台(强烈推荐): ●ANSI C编译器(例如:GCC),编译PHP扩展和MySQL用户自定义函数 ●flex:Version 2.5.4 ●bison:Version 1.28(首选),1.35或者1.75 使用Windows 如果使用的是Windows平台,需要: ●Microsoft Visual Studio 2008或者更新的版本 ●Windows SDK 6.1 还可以用Microsoft IIS代替Apache,然而本书中的有些内容是Apache所特有的。 源代码 在使用本书中的代码时,既可以选择自己手工输入所有的代码,也可以直接使用本书附带的源代码文件。本书使用的所有源代码都可以从 和http://www.tupwk. Com.cn/downpage下载。登录到该站点后,通过定位本书标题(或者使用搜索框,或者使用标题列表)并点击本书详情页面的代码下载链接就可以下载获得所有的源代码。 一旦下载代码,使用自己喜欢的解压缩工具将其解压。或者直接登录到主Wrox的代码下载主页/dynamic/books.download.aspx去检查本书和所有其他的Wrox书籍可用的代码。 勘误表 尽管我们已经尽了各种努力来保证文章或代码中不出现错误,但是错误总是难免的,如果您在本书中找到了错误,例如拼写错误或代码错误,请告诉我们,我们将非常感激。通过勘误表,可以让其他读者避免受挫,当然,这还有助于提供更高质量的信息。 要在网站上找到本书的勘误表,可以登录<>,通过Search工具或书名列表查找本书,然后在本书的细目页面上,单击Book Errata链接。在这个页面上可以查看Wrox编辑已提交和粘贴的所有勘误项。完整的图书列表还包括每本书的勘误表,网址是/misc-pages/booklist.shtml。 如果在Book Errata页面上没有看到您找出的错误,请进入/contact/ techsupport.shtml,填写表单,发电子邮件,我们就会检查您的信息,如果是正确的,就在本书的勘误表中粘贴一个消息,我们将在本书的后续版本中采用。 P2P邮件列表是为作者和读者之间的讨论而建立的。读者可以在上加入P2P论坛。该论坛是一个基于Web的系统,用于传送与Wrox图书相关的信息和相关技术,与其他读者和技术用户交流。该论坛提供了订阅功能,当论坛上有新帖子时,会给您发送您选择的主题。Wrox作者、编辑和其他业界专家和读者都会在这个论坛上进行讨论。 在上有许多不同的论坛,帮助读者阅读本书,在读者开发自己的应用程序时,也可以从这个论坛中获益。要加入这个论坛,须执行下面的步骤: (1) 进入,单击Register链接。 (2) 阅读其内容,单击Agree按钮。 (3) 提供加入论坛所需的信息及愿意提供的可选信息,单击Submit按钮。 (4) 然后就可以收到一封电子邮件,其中的信息描述了如何验证账户,完成加入过程。 提示: 不加入P2P也可以阅读论坛上的信息,但只有加入论坛后,才能发送自己的信息。 加入论坛后,就可以发送新信息,回应其他用户的帖子。可以随时在Web上阅读信息。如果希望某个论坛给自己发送新信息,可以在论坛列表中单击该论坛对应的Subscribe to this Forum图标。 对于如何使用Wrox P2P的更多信息,可阅读P2P FAQ,了解论坛软件的工作原理,以及许多针对P2P和Wrox图书的常见问题解答。要阅读FAQ,可以单击任意P2P页面上的FAQ链接。