核心 PHP 编程:使用 PHP 构建动态网站

作者:Leon Atkinson
出版社:Prentice Hall
电子邮件:ptr_feedback@phptr.com
价格:39.99 美元
ISBN:0-13-020787-X
评论员:Allen Riddell
“裙带关系”这个词经常出现在政治竞选中,用来描述一种情况,即一位受欢迎的候选人,通常是总统候选人,可以凭借其受欢迎程度——凭借其“裙带关系”——将他所在党的其他成员带入办公室。 这种类比非常适合今年。 今年不是选举年,而是 Linux 和开源年,每一个都通过联系将各种编程语言和应用程序带入主流。
在企鹅的浪潮中值得注意的一种语言是一种名为 PHP 的 Web 脚本语言,它以惊人的速度聚集了用户。 PHP 与大量用于生成“动态网页”的语言竞争——动态网页部分或全部由代码组成,并在每次查看时进行解释。 竞争对手的语言包括微软的 Active Server Pages (ASP)、Allaire 的 Cold Fusion,甚至还有 Perl。 更成熟的竞争将很难找到。
Leon Atkinson 撰写的书籍核心 PHP 编程的销量进一步证明了 PHP 的受欢迎程度,这是为数不多的关于该语言的书籍之一。 这本书的第一版已经售罄,并且一直在线计算机书零售商的畅销书排行榜中名列前茅。 而且,根据 Atkinson 的网页,第二版正在考虑中。
由于只有一本 PHP 书籍可供选择,这种受欢迎程度可能归因于主题而不是书籍的质量。 在这种情况下,PHP 可能与 BASIC 一样,因为 Atkinson 的写作在浩如烟海的计算机书籍中名列前茅,打破了数量胜过质量的趋势,这种趋势困扰着如此多的千页以上的书籍。 Atkinson 的写作异常简洁而全面。
Atkinson 明智地从语言简介开始,详细介绍了它相对于竞争对手的优势。 对于像 Web 脚本语言这样有意透明的东西,这样的讨论至关重要。 冲浪者几乎没有机会知道哪些站点使用了任何 Web 脚本语言。 例如,流行的 Linux 软件站点 freshmeat.net 专门使用 PHP,尽管用户在查看打开页面时无法检测到它。 Atkinson 的倡导是开源软件的传统,他认为它在价格和灵活性方面都优于竞争对手——值得注意的是,它可以自由修改和分发。
PHP 的介绍和语言基础知识构成了本书的四个部分中的第一部分。 导言非常基础,适合编程的完全初学者。 变量声明和其他重要但入门的主题完全在第一部分中讨论。 对于许多(如果不是大多数)熟悉 Perl 的读者来说,Perl 是一种与 PHP 非常相似的语言,他们可能会感到沮丧,因为他们要浏览类型转换和 for 语句等基本概念,才能找到语言之间的主要区别。 如果有一个或两个章节比较 PHP 和 Perl 会很好。 然而,这并不是太大的问题,因为大多数读者很快就会通过示例或参考部分熟悉,如果他们不费力地阅读开头的章节的话。
Atkinson 将第二部分称为“功能参考”,它将传统的功能参考与每个功能的详细示例相结合。 尽管 MySQL、mSQL 和 PostgreSQL 中几乎相同的功能和 SQL 数据库调用的示例存在冗余,但该设计服务于另一个目的。 通过为每个函数提供一个示例,Atkinson 允许读者通过示例学习。 这种指导应该适合熟悉但不精通该语言的程序员类型,并通过每个示例向他保证他正在正确使用该函数和相关函数。 虽然参考确实占据了本书的大部分篇幅,但 Atkinson 保持示例简短但有用。
对于初学者用户,第三部分题为“算法”,为读者提供了一条有趣的路径,从稳定的搜索和排序方法(如冒泡排序和快速排序)到更实用的示例(如从 SQL 数据库检索)。 这种设计可能会让更高级的用户觉得有点傻,因为在使用 SQL 或 PHP 常访问的大多数其他数据库时,不需要冒泡排序。 实际上,实际上使用 PHP 对大型数据库进行排序是不可取的——这种方案基本上意味着编译和执行代码,以便在每次浏览器查看页面时对数据库进行排序。 虽然本章的某些部分似乎更适合计算机入门课程,但苦苦挣扎的用户可能会发现用 PHP 实现的熟悉计算机科学算法很有帮助。
在最后一部分,Atkinson 大放异彩,迈出了关键一步,从教授语言到在实际示例中应用它,并就如何使该语言真正替代 ASP 和 Cold Fusion 等重量级语言提出了建议。 他将该部分称为“软件工程”,参考越来越流行的术语“Web 工程师”——将程序员的构建与土木工程师的构建进行比较。 Atkinson 讨论了设计、效率和调试问题,概述了使用 PHP 的重要方面,即用它做有用的事情,即构建网站。
考虑到 PHP 的竞争对手,使用 PHP 讨论 Web 工程除了教学之外,还有一个目的:它增加了该语言作为其高价且功能强大的竞争对手的严肃竞争者的可信度。 通过讨论如何高效地设计一个可扩展且可维护的站点——这在入门级文本中非常罕见——Atkinson 触及了对 PHP 的一种可能的误解的核心,即它在能力和功能上更类似于 JavaScript,而不是像 ASP 这样更“强大”和“主流”的包。 这种批评与针对 Linux 和开源应用程序的批评一样,在这里几乎没有道理,并且在他对数据库和编码效率的讨论中,Atkinson 开发了在 PHP 下统一站点的方法,将其用作构建底层框架的工具,而不是作为增强现有框架的方法。
就他而言,Atkinson 做得非常出色。 他的精确性和组织性使阅读和学习 PHP 变得简单。 那些对 PHP 感兴趣的人应该关心的不是如何学习它——Atkinson 已经解决了这个问题——而是 PHP 语言本身的发展方向。 与许多开源应用程序一样,PHP 发展迅速。 当前正在发生的一个相当剧烈的变化是重写 PHP 的底层“引擎”。 这样做的项目称为“Zend”,并且还涉及许可变更。 虽然向后兼容性的承诺依然存在,但新的和更好的功能或编码方法的 перспектива 正在逼近。 对于某些人来说,这可能是谨慎使用的理由; 对于另一些人来说,这是开始学习该语言的另一个理由。
PHP 的未来是光明的。 Atkinson 的书是任何有兴趣学习一门有前途的语言——快速增长的裙带关系——的人的绝佳伴侣。
Allen Beye Riddell (ariddell@concentric.net) 目前就读于斯坦福大学,并担任技术顾问两年。 PHP 一直是他过去一年选择的语言——当然是在 Linux 服务器上运行。