零、序言

PHP8代表了PHP核心开发团队最大限度地提高核心语言效率的工作的高潮。只需迁移到PHP8,您的应用代码将立即看到速度的提升,并具有更小的内存占用。此外,在PHP8中,开发人员注意到在规范语法和语言使用方面付出了巨大的努力。简而言之,PHP8编程对于喜欢遵守良好编码实践的开发人员来说是一种乐趣。

然而,这不可避免地导致了一个问题:PHP语言将从这里走向何方?PHP8以实时编译器的形式和对光纤的支持,也提供了这个问题的答案。后者是异步编程的基础,已经为PHP 8.1发布了。PHP8让您对该语言的未来有了一个大致的了解,而且这个未来看起来非常光明!

如果将所有这些放在一起,就可以清楚地看到,理解和掌握PHP8中实现的新特性和更严格的编码实践对于那些希望从事PHP开发人员职业的人来说至关重要。这本书正是您快速启动并运行PHP8所需的工具。我们不仅介绍了新特性,还向您展示了如何避免在PHP8迁移后可能导致代码失败的陷阱。此外,我们通过全面介绍JIT编译器和PHP异步编程,让您了解PHP的未来。

这本书是给谁的

这本书是为在PHP5或以上有经验的所有级别的PHP开发人员编写的。如果您刚刚开始使用PHP,您会发现代码示例对于学习更有效地使用该语言非常有用。在一个或多个PHP项目上工作了几个月的开发人员将能够将技巧和技术应用到手头的代码中,而那些具有多年PHP经验的开发人员肯定会欣赏新PHP8功能的简明介绍。

这本书涵盖的内容

第1章介绍新的PHP8 OOP特性,向您介绍特定于面向对象编程(OOP)的PHP8新特性。本章提供了大量简短的代码示例,清楚地说明了新的功能和概念。本章对于帮助您快速利用PHP8的强大功能并使代码示例适合您自己的实践至关重要。

第2章学习PHP8的功能添加,涵盖了PHP8在程序层面引入的重要添加和增强。它包含了大量代码示例,展示了新的PHP8特性和技术,以促进过程编程。本章将教您如何编写更快、更清晰的应用代码。

第3章利用错误处理增强功能,探索PHP8的关键改进之一,即其高级错误处理功能。在本章中,您将了解哪些通知已升级为警告,以及哪些警告现在已升级为错误。本章将使您非常了解安全增强的背景和目的,从而更好地控制代码的使用。此外,了解以前只生成警告,但现在生成错误的错误情况非常重要,以便采取措施防止升级到PHP8后应用失败。

第4章直接进行C语言调用,帮助您了解外文函数接口(FFI)的功能、用途以及使用方法。本章中的信息对于对使用直接C语言调用快速定制原型感兴趣的开发人员非常重要。本章向您展示了如何将C语言结构和函数直接合并到代码中,从而打开了通往PHP迄今无法使用的整个功能世界的大门。

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

第6章理解PHP8的功能差异涵盖了PHP8命令或功能级别上可能出现的向后d兼容性中断。本章介绍了将现有代码迁移到PHP8时可能出现的陷阱的重要信息。本章提供的信息使您能够生成可靠的PHP代码。在完成了本章中的概念之后,您将能够更好地编写生成精确结果并避免不一致的代码。

第7章使用PHP8扩展时避免陷阱将带您了解对扩展所做的主要更改,以及如何在将现有应用更新到PHP8时避免陷阱。一旦您完成了对示例代码和主题的回顾,就可以准备任何现有的PHP代码,以便迁移到PHP8。除了了解各种扩展的更改外,您还将深入了解它们的操作。这将允许您在PHP8中使用扩展时做出明智的决定。

第8章了解PHP8的弃用或删除功能,引导您了解PHP8中已弃用或删除的功能。在阅读本章中的资料并遵循示例应用代码之后,您将能够检测并重写已弃用的代码。您还将学习如何为已删除的功能开发变通方法,以及如何重构使用已删除功能(包括扩展)的代码。在本章中,您将学习的另一项重要技能是如何根据PHP8中完全删除的函数重写代码,从而提高应用的安全性。

第9章掌握PHP8最佳实践向您介绍目前在PHP8中实施的最佳实践。它涵盖了许多重要的方法签名更改,以及它们的新用法如何继续帮助您生成更好代码的PHP总体趋势。您还将了解私有方法、接口、特征和匿名类的使用变化,以及名称空间现在是如何解析的。掌握本章中介绍的最佳实践不仅可以帮助您编写更好的代码,还可以帮助您避免在未能掌握这些新实践时可能出现的潜在代码中断。

第10章提高性能向您介绍了一些对性能有积极影响的PHP 8新特性,特别是新的即时编译器。本章还全面介绍了弱引用,这些弱引用的正确使用会导致使用更少内存的应用。通过仔细阅读本章所涵盖的材料并研究代码示例,您将能够编写更快、更高效的代码。

第11章将现有PHP应用迁移到PHP8中,介绍了一组类,这些类构成了PHP8向后兼容中断扫描程序的基础。在本书中,您将看到PHP8更新后可能出现的潜在代码中断。此外,您还将了解将现有客户PHP应用迁移到PHP8的推荐过程。本章将使您能够更好地处理PHP8迁移,使您能够更自信地执行PHP8迁移,并将问题减少到最少。

第12章使用异步编程创建PHP8应用,解释了传统同步和异步编程模型之间的差异。近年来,一项令人兴奋的新技术风靡了PHP社区:异步编程,也称为PHPSync。此外,还介绍了流行的PHP异步扩展和框架,包括Swoole扩展和ReactPHP,并提供了大量示例以帮助您入门。当您完成本章的工作时,您将能够提高应用的性能,使其速度提高5倍到惊人的40倍!

充分利用这本书

为了充分利用本书,您必须对PHP语法、变量、控制结构(例如,if{}else{})、循环结构(例如,for(){})、数组和函数有基本的了解。您还必须了解PHP OOP的基本概念:类、继承和名称空间。

如果您没有接受过正式的PHP培训,或者不确定您是否具备必要的知识,请查看在线PHP参考手册的以下两部分:

以下是本书所涵盖软件的摘要:

笔记

如果您使用的是本书的数字版本,我们建议您自己键入代码或从本书的GitHub存储库访问代码(下一节提供了链接)。这样做将帮助您避免与复制和粘贴代码相关的任何潜在错误。

下载示例代码文件

您可以从GitHub的下载本书的示例代码文件https://github.com/PacktPublishing/PHP-8-Programming-Tips-Tricks-and-Best-Practices 。如果代码有更新,它将在GitHub存储库中更新。

我们的丰富书籍和视频目录中还有其他代码包,请访问https://github.com/PacktPublishing/ 。看看他们!

下载彩色图片

我们还提供了一个PDF文件,其中包含本书中使用的屏幕截图和图表的彩色图像。您可以在这里下载:https://static.packt-cdn.com/downloads/9781801071871_ColorImages.pdf

使用的约定

本书中使用了许多文本约定。

文本中的代码:表示文本中的码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟URL、用户输入和Twitter句柄。下面是一个例子:“本章还向您介绍了如何使用新的属性类作为PHP DocBlocks的最终替代品。”

代码块设置如下:

///repo/ch01/php7_prop_reduce.php
声明(严格类型=1);
课堂测试{
受保护的$id=0;
受保护的$token=0;
受保护的$name='';o

当我们希望提请您注意代码块的特定部分时,相关行或项目以粗体显示:

$result=匹配(<表达式>){
=><expression>,</expression>
[=><expression>,]</expression>
默认值=> };

任何命令行输入或输出的编写方式如下:

致命错误:未捕获的TypeError:无法将字符串分配给属性测试::/repo/ch01/php8_prop_danger.php:12中int类型的$token

提示或重要提示

看起来像这样。

联系

我们欢迎读者的反馈。

一般反馈:如果您对本书的任何方面有疑问,请发送电子邮件至customercare@packtpub.com并在邮件主题中提及书名。

勘误表:尽管我们已尽一切努力确保内容的准确性,但还是会出现错误。如果您在本书中发现错误,如果您能向我们报告,我们将不胜感激。请访问www.packtpub.com/support/errata并填写表格。

盗版:如果您在互联网上发现我们作品的任何形式的非法复制品,请您提供我们的位置地址或网站名称,我们将不胜感激。请致电与我们联系copyright@packt.com带有指向该材料的链接。

如果您有兴趣成为一名作家:如果您对某个主题有专业知识,并且您有兴趣撰写或贡献一本书,请访问authors.packtpub.com

分享你的想法

一旦您阅读了PHP8编程技巧、技巧和最佳实践,我们很想听听您的想法!请点击此处,直接进入本书的亚马逊评论页面,并分享您的反馈。

您的评论对我们和技术界都很重要,将帮助我们确保提供高质量的内容。