前言

PHP 8 是 PHP 核心开发团队为最大限度地提高核心语言效率所做工作的结晶。只需迁移到 PHP 8,您的应用程序代码就能立即看到速度的提升和内存占用的减少。此外,在 PHP 8 中,开发人员注意到在规范语法和语言使用方面付出了巨大的努力。简而言之,使用 PHP 8 编程对于喜欢遵守良好编码规范的开发人员来说是一件乐事。

然而,这不可避免地会引出一个问题:PHP 语言将何去何从?PHP 8 以即时编译器(Just-In-Time)和对光纤(fibers)支持的形式给出了这个问题的答案。后者构成了异步编程的基础,并已在 PHP 8.1 中公布。PHP 8 让你看到了这门语言的未来,而这个未来看起来非常光明!

如果把所有这一切结合起来,就可以清楚地看到,理解和掌握 PHP 8 中实现的新功能和更严格的编码实践,对于那些希望认真从事 PHP 开发的人来说至关重要。本书正是你快速掌握 PHP 8 所需的工具。我们不仅介绍了新的功能,而且还告诉你如何避免可能导致 PHP 8 移植后代码失败的陷阱。此外,我们还通过对 JIT 编译器和 PHP 异步编程的全面介绍,让您一窥 PHP 的未来。

章节简介

第 1 章 PHP 8 OOP 新特性介绍,将向您介绍 PHP 8 中面向对象编程(OOP)的新特性。本章提供了大量简短的代码示例,清楚地说明了新功能和新概念。本章对于帮助您快速利用 PHP 8 的强大功能以及根据自己的实践调整代码示例至关重要。

第 2 章 学习 PHP 8 的新增功能,涵盖了 PHP 8 在程序层面上引入的重要新增功能和增强功能。本章包含大量代码示例,展示了 PHP 8 的新功能和技术,以促进过程式编程。本章教你如何编写更快、更简洁的应用程序代码。

第 3 章 利用错误处理增强功能,探讨了 PHP 8 的主要改进之一—​高级错误处理功能。在本章中,你将了解到哪些 "通知 "已升级为 "警告",以及哪些 "警告 "已升级为 "错误"。通过本章的学习,你将对安全增强功能的背景和意图有深入的了解,从而更好地控制代码的使用。此外,了解以前只生成 Warnings 而现在生成 Errors 的错误条件也很重要,这样就可以采取措施防止应用程序在升级到 PHP 8 后出现故障。

第 4 章 直接调用 C 语言,将帮助你了解外来函数接口 (FFI) 的含义、作用和使用方法。本章的信息对于有意使用直接 C 语言调用快速定制原型的开发人员非常重要。本章将向你展示如何将 C 语言结构和函数直接整合到代码中,为你打开整个 PHP 功能世界的大门。

第 5 章 发现潜在的 OOP 向后兼容性缺陷,将向你介绍 PHP 8 中专门针对 OOP 的新功能。本章提供了大量简短的代码示例,清楚地说明了新功能和新概念。通过将代码示例应用到自己的实践中,本章对于帮助你快速利用 PHP 8 的强大功能至关重要。此外,本章还强调了在迁移 PHP 8 后面向对象代码可能会中断的情况。

第 6 章 了解 PHP 8 的功能差异,涉及 PHP 8 命令或功能层面上潜在的向后兼容性问题。本章介绍了一些重要信息,突出了将现有代码迁移到 PHP 8 时可能存在的隐患。本章介绍的信息可帮助您编写可靠的 PHP 代码。在学习了本章的概念后,你将能更好地编写出产生精确结果和避免不一致的代码。

第 7 章 使用 PHP 8 扩展时避免陷阱,将带你了解扩展的主要变化,以及在将现有应用程序更新到 PHP 8 时如何避免陷阱。完成对示例代码和主题的学习后,您就可以准备将现有的 PHP 代码迁移到 PHP 8。这将使您在使用 PHP 8 中的扩展时做出明智的决定。

第 8 章 学习 PHP 8 废弃或移除的功能,将引导你了解 PHP 8 中废弃或移除的功能。阅读完本章的内容并学习了示例程序代码后,你将能够检测和重写已被弃用的代码。您还将学会如何为已删除的功能开发变通方法,以及如何重构使用已删除功能(涉及扩展)的代码。本章还将学习另一项重要技能,即如何通过重写依赖于 PHP 8 中已完全删除的函数的代码来提高应用程序的安全性。

第 9 章 掌握 PHP 8 最佳实践,将介绍 PHP 8 中执行的最佳实践,其中包括许多重要的方法签名变化,以及它们的新用法如何延续 PHP 的总体趋势,帮助编写出更好的代码。您还将了解到在使用私有方法、接口、特性和匿名类方面的变化,以及现在如何解析命名空间。掌握本章所涉及的最佳实践,不仅能让你编写出更好的代码,还能帮助你避免因不掌握这些新实践而可能出现的代码断裂。

第 10 章 提高性能,将向你介绍许多对性能有积极影响的 PHP 8 新特性,尤其是新的即时编译器。本章还全面介绍了弱引用,正确使用弱引用可以大大减少应用程序的内存使用量。通过认真复习本章所涉及的内容和研究代码示例,你将能够编写出更快、更高效的代码。

第 11 章 将现有的 PHP 应用程序移植到 PHP 8,介绍了一组类,它们是 PHP 8 向后兼容断点扫描器的基础。在本书中,你将看到 PHP 8 更新后可能出现的代码断点。此外,您还将了解将现有客户 PHP 应用程序迁移到 PHP 8 的推荐过程。通过本章的学习,你将具备更强的能力来处理 PHP 8 迁移,从而更有信心地执行 PHP 8 迁移,并将问题减少到最低程度。

第 12 章 使用异步编程创建 PHP 8 应用程序,解释了传统同步编程模型和异步编程模型之间的区别。近年来,一种令人兴奋的新技术在 PHP 社区掀起了一场风暴:异步编程,也称为 PHP async。此外,本书还介绍了流行的 PHP 异步扩展和框架,包括 Swoole 扩展和 ReactPHP,并提供了大量示例供您入门。完成本章学习后,您就可以提高应用程序的性能,使其速度提高 5 倍到 40 倍不等!