商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > PHP在2023

PHP在2023

  发布于2026-07-20 阅读(0)

扫一扫,手机访问

原文中的链接图标和末尾作者自我介绍已删除,图片保留原样。 ```html

从90年代中期作为个人项目的卑微起点,PHP已经成长为最受欢迎的Web开发语言之一,为从小型博客到大型企业应用程序的各种场景提供支持。这门语言在近三十年里发生了惊人的转变——即便只是过去十年,PHP的变化也远超我们当初的想象。

每年,PHP社区都会有一篇关于其现状的回顾文章,既总结过去,也展望未来。今年也不例外,让我们直接进入正题。

PHP 基金会

通常,这类文章会从最新PHP版本的摘要开始,但这次有必要先聊聊PHP基金会。自成立以来已经过去一年多了:这是一个由10名志愿者和6名受薪开发人员组成的集体,专门负责推进PHP语言本身的发展。

去年的文章中曾这样写道:

“我现在有点担心Nikita已经离职。他并不是唯一能开发PHP核心的人,但在过去几年里,他在PHP 8.0和8.1上投入了大量工作。希望PHP基金会能尽快跟上节奏,明年能有足够多的核心开发人员有时间从事PHP工作。PHP 8.2已经在开发中,尽管还没有很多RFC草案。我不认为2022年会是PHP最激动人心的一年,而更可能是增加稳定性的一年——这也没什么不对。”

客观地说,基金会确实做到了。他们最近发布了2022年的报告,数据相当亮眼:

  • 2022年共筹集了580,000美元
  • 基金会支付6名开发人员专门从事PHP工作
  • 基金会成员在php-src中完成了几乎一半的提交
  • 他们创建了8个新的RFC,其中只有一个未能通过

可以说,基金会是PHP长期以来最好的事情之一。希望他们在2023年能进一步改进这门语言。如果你在一家使用PHP的公司工作,强烈建议考虑捐赠支持。

PHP 8.2

接下来看PHP 8.2。虽然普遍认为这是一个较小的版本,但依然有不少好功能,简单列举几个:

只读类:

readonly class PostData
{
    public function __construct(
        public string $title,
        public string $author,
        public string $body,
        public DateTimeImmutable $createdAt,
        public PostState $state,
    ) {}
}

全新的随机数生成器:

$rng = $is_production
    ? new Random\Engine\Secure()
    : new Random\Engine\Mt19937(1234);
$randomizer = new Random\Randomizer($rng);
$randomizer->shuffleString('foobar');

独立的nulltruefalse类型:

function alwaysFalse(): false
{
    return false;
}

析取范式类型:

function generateSlug((HasTitle&HasId)|null $post) { /* … */ }

敏感参数遮蔽:

function connect(
    string $user,
    #[\SensitiveParameter] string $password
) {
    // …
}

还有其他改进。看看这些年PHP的变化,简直令人惊叹。下面是一个短视频对比,能清晰展示差异:

生态系统

像往年一样,必须提一下Packagist——PHP的包管理器。目前它列出了361,000个包,比去年多了6万个:

另一个让人印象深刻的数字是总安装量。去年Packagist突破了500亿次安装的里程碑,而现在呢?已经达到74,492,061,634次。一年内增加了240亿次,平均每月20亿次。所有这些数据都在说明:PHP生态系统正在飞速增长。


每半年,会有一份版本统计报告发布,基于Packagist的数据分析PHP版本使用情况。下面这张图再次展示了从2013年至今,各版本的使用历史变迁:

很高兴看到PHP 8.* 的使用率急剧上升,但仍有很大一部分人坚持使用较旧、缓慢且不安全的PHP版本。希望2023年能看到这些旧版本号下降得更快。在版本统计报告中曾写道:

“这些数据完美地可视化了PHP社区内部的分裂:一部分跟上了现代PHP,而另一部分则无助地落后。”

说到升级,有一个工具不得不提:Rector。这是一个免费的自动化工具,可以帮助你升级PHP代码库。只需要少量配置,它就能替你做大量工作。最近用它来更新一个社区驱动的内容聚合器到PHP 8.2,体验非常流畅。

在发布版本统计报告后,有几个人说他们还没更新,被困在PHP 7.* 上。问他们原因,答案都是“手动工作量太大”。有趣的是,甚至没有人尝试过像Rector这样的工具来帮助自己。编程语言不仅仅是编译器,工具和生态系统同样重要。很多人、项目和企业如果考虑使用Rector这类自动化工具,一定会受益匪浅。


既然聊到生态系统,就不能不提PHP的两大框架:Lara vel和Symfony。

过去几年,Lara vel增长迅猛。他们现在雇用了8名全职开发人员来维护框架及其生态系统。更重要的是,JetBrains的开发调查报告显示,67%的PHP开发者使用Lara vel。

Symfony作为框架可能不如Lara vel流行,但它依然是PHP社区最成熟、最稳定的框架之一,常用于企业级应用开发。它的独立组件在整个PHP生态系统中很受欢迎——就连Lara vel也依赖一些Symfony组件。毫不意外,多个Symfony包进入了Packagist的顶级包列表。

还得提一下WordPress。说实话,对它的感情很复杂。作为用户,WordPress非常棒——安装简单、使用方便,它的流行实至名归。但作为开发者,WordPress又让人有些无奈:它无法与现代、安全的PHP版本保持同步,给整个PHP社区蒙上了一层阴影。

目前,WordPress仅对PHP 8.0提供beta支持。注意,PHP 8.0于2020年发布,三年后现已结束生命周期——而WordPress还不支持它。当然,不支持新版本有其原因,至于是否合理,每个开发者心里都有一杆秤。个人看法是,WordPress坚持向后兼容性的决定主要是由业务驱动的:WordPress很大一部分是商业业务,而客户群中大量用户仍运行着旧版PHP。这是一个恶性循环,双方互相阻碍,某种程度上也拖累了整个PHP社区。

但另一方面,近20年后,很少有软件项目能像WordPress一样保持如此高的流行度和相关性——所以,也许他们关于向后兼容性的策略自有道理?

超集

最后,忍不住提一个长期以来的梦想:PHP的超集——一个拥有强大IDE和静态分析器支持的版本。希望这个梦想有一天能成为现实。原因有很多,也曾在各种场合谈过。虽然不指望2023年就能看到被广泛接受和支持的超集,但已经有一些小步子在向前走。比如PXP,它可能会让事情朝着正确的方向发展。


好了,希望2023年一切顺利!如果你是第一次看到这篇文章,欢迎持续关注后续内容。

本文转载于:https://blog.csdn.net/shaozheng0503/article/details/129779232 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注