每年我都会回顾PHP世界的新发展并期待未来的发展。就像2020年和2019年一样,我们又来了!
正如我一次又一次说过的,PHP 已经不是10 年前的语言了。一种快速可靠的语言,用于大规模构建大型应用程序。因此,让我们讨论过去一年PHP 语言和社区发生的一些重要的变化。
PHP8 或更高
去年在年底发布了新的主要版本PHP 8。我已经写了很多关于这个主题的文章,我不会在这里复制/粘贴所有内容。与往常一样,从Kinsta 执行的基准测试中可以看出,性能正在提高。
还有一些JIT 确实可以提高某些项目的性能,如果您不使用共享主机,预加载它们将对整个项目产生积极影响。
我认为还值得一提的是特性(有时称为“注释”)、命名参数和提升的特性等特性。因为这些特性无疑促成了PHP 8 的伟大发布。
同时,核心团队已经在着手开发新版本的PHP 8.1,将于2021 年在年底发布。目前,重要的特性是枚举和纤维,我们将在本文后面介绍。明信片。
每年,核心团队都会成功地为社区带来一个新的稳定版本,该版本具有许多功能和生活质量改进。升级之路不再艰难。我将一些项目从PHP 7.4 升级到PHP 8。每个项目只用了大约一个小时。真的没有理由不落后!
PHP 的类型系统
关于类型,实际上有一些非常有趣的消息。枚举是在PHP 8.1 中添加的。重要的是,我看到一些静态分析工具的维护者登录到第一个RFC 并贡献PHP 源代码。这添加了一个对静态分析有用的Never 类型。
在静态分析工具方面,PhpStorm 添加了对Spec 和PhpStan 的内置支持,这是迈向广泛采用的重要一步。
不幸的是,仍然没有对仿制药的支持。有一些主要障碍,特别是因为我们仍在处理动态类型语言。 Nikita 在这里解决了这些问题。就个人而言,我的方法很简单。它只支持在运行时清除的泛型并依赖于静态分析。这不仅需要技术解决方案,还需要整个PHP 社区的思维方式转变。有一天它可能是一个可行的选择,但到目前为止还没有。
异步PHP
近有一些好消息。 PHP 协程(又名:又名绿色线程- PHP 8.1!但是纤维(所谓的纤维)可能不会像您想象的那样改变游戏规则。
虽然光纤本身可能是大型异步计算机的小设备,但RFC再次吸引了人们对异步社区的关注,我们不禁为此感到高兴。异步框架(如Amphp 和ReactPHP)越来越流行,Laravel 近宣布内置对Swoole 的支持。
社区
更不用说Composer,事实上的标准包管理器。 2020 年10 月,我们发布了新的主要版本Composer 2.0。这个版本有一些UX 改进,但重要的是,显着的性能提升。有时,即使是全新安装也快3 倍。
说到Composer,我喜欢通过查看一段时间内可用的包来衡量PHP 生态系统的当前状态。去年我谈到每天2500 万次下载,今天这个数字增加了一倍多,我们每天的下载量是6000 万次。
查看随时间列出软件包和版本数量的图表。您也可以在我们的网站上找到它。很明显,一个健康的生态系统正在成长并且没有尽头。
后面,让我们回顾一下近年来PHP 的所有新增功能。如果您没有跟上开发的步伐,您可能需要查看此列表。我相信这是社区和核心开发团队近年来成长的证明,相信还会有更多的成长。
这一切都不得不说。 PHP 还活着并且工作正常。随着岁月的流逝,我对语言的发展方向感到更加满意,并希望在未来很长一段时间内使用它!