当前位置:

首页 > 编程开发 > PHP在2023

PHP在2023

本文目录

    PHP8.2引入只读类、随机数生成器、敏感参数遮蔽等新特性,提升类型安全与开发体验。PHP基金会成立一年,筹集58万美元,贡献半数提交。Packagist包数达36.1万,年安装量增240亿次。Laravel与Symfony主导框架,WordPress仍滞后于现代PHP版本,生态系统持续繁荣。

    原文中的链接图标和末尾作者自我介绍已删除,图片保留原样。 ```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');

    独立的null、true、false类型:

    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年一切顺利!如果你是第一次看到这篇文章,欢迎持续关注后续内容。

    本文内容来源于网友投稿,如有侵权请联系删除。
    作者最新文章
    编程开发 PHP apache
    相关文章 更多
    PHP递归性能优化技巧与迭代替代方案
    PHP递归性能优化技巧与迭代替代方案

    解析PHP递归函数在树形数据处理中的性能瓶颈,提供预加载数据消除I/O、使用显式栈替代深层递归的实战方案,帮助开发者在代码可读性与执行效率间做出合理取舍。

    Java测试中怎么使用Mockito模拟依赖对象
    Java测试中怎么使用Mockito模拟依赖对象

    详细讲解在Java单元测试中如何使用Mockito模拟依赖对象,包括引入依赖、创建Mock、打桩返回值、行为验证以及Mock与Spy的核心差异和常见陷阱排查。

    链表删除节点的时间复杂度是多少及其详细分析
    链表删除节点的时间复杂度是多少及其详细分析

    详细分析链表删除节点的时间复杂度,深入探讨单链表与双向链表在不同已知前提下的查找与删除开销,并结合完整代码与清晰图解进行对比总结。

    codex如何配置模型参数及文件设置教程
    codex如何配置模型参数及文件设置教程

    想知道如何让AI写出的代码更贴合你的习惯?本文手把手教你在VS Code中调整Codex相关模型参数,通过修改配置文件优化温度值和令牌限制,解决代码建议不准确或响应慢的问题。

    Claude Code AI编程工具实力揭秘与编程助手实测
    Claude Code AI编程工具实力揭秘与编程助手实测

    通过实测展示Claude Code在终端中如何理解自然语言指令、自动修改代码文件并处理复杂编程任务,帮助开发者评估其实际辅助能力。

    winforms教程自学入门与基础开发步骤详解
    winforms教程自学入门与基础开发步骤详解

    本教程详细讲解如何使用Visual Studio创建WinForms项目,通过添加按钮和标签控件并编写点击事件代码,实现一个基础的计数器功能,适合C#初学者快速上手Windows窗体应用开发。

    Cursor自动补全设置教程教你快速开启代码补全功能
    Cursor自动补全设置教程教你快速开启代码补全功能

    详解Cursor编辑器中自动补全功能的开启与优化设置,涵盖Tab触发机制、上下文窗口调整及模型切换,帮助开发者解决补全延迟、干扰大等问题,提升编码流畅度。

    pandas的数据格式怎么转换和设置方法教程
    pandas的数据格式怎么转换和设置方法教程

    详解Pandas中数据格式转换的核心方法,包括astype强制转换、to_numeric容错处理及日期解析技巧,解决常见类型错误并提升数据处理效率。

    VS Code中文设置方法 简体语言包安装与切换教程
    VS Code中文设置方法 简体语言包安装与切换教程

    详细介绍在Visual Studio Code中安装Chinese (Simplified)语言包的方法,包括通过扩展市场搜索、安装及自动重启切换至简体中文界面的完整步骤,帮助开发者快速将编辑器本地化。

    cursor安装过程无法更改安装位置的解决方法
    cursor安装过程无法更改安装位置的解决方法

    针对Cursor安装包默认锁定C盘且无路径选择界面的问题,提供通过手动移动文件并创建目录联结(Symbolic Link)的解决方案,实现将软件安装在其他磁盘分区。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    macOS软件
    macOS软件

    正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

    Mac软件 更多
    photoshop
    photoshop
    Windows、macOS 、 iPad

    Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

    Blender
    Blender
    Windows、macOS 和 Linux

    Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。

    灵活计算器
    灵活计算器
    macOS/iOS/Android

    灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

    WINDOWS 更多
    3dmax(3ds max)
    3dmax(3ds max)
    Windows

    Autodesk 3ds Max 是一款专业的三维建模、动画与渲染软件,广泛应用于建筑可视化、游戏开发、影视动画、广告设计和产品展示等领域。

    photoshop
    photoshop
    Windows、macOS 、 iPad

    Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

    Blender
    Blender
    Windows、macOS 和 Linux

    Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。