PHP 8.3

PHP 8.3 的发布让人们重新评估这门语言在现代 Web 开发中的角色。许多人指出,它已经从早期混乱的根源演变为一个更强类型、更像 Java 的环境,同时仍然驱动着大多数网站。评论者们争论 PHP 日益增长的复杂性是否削弱了它传统上的简单性和“上传即运行”的务实优势,尤其是在 WordPress、Laravel 以及与 JS 重型 SPA 竞争的新型服务端范式背景下。另一些人则强调性能、可维护性、工具链和部署之间的权衡——认为 PHP 依然是一个极其实用的 backend-for-frontend 选择,即便它不再是每个新项目的显而易见最佳答案。

对现代 PHP 的看法

  • 许多老用户表示,自 PHP 4/5 以来,PHP 已经有了巨大改进,尤其是在现代框架(Laravel、Symfony)中。
  • 仍有一些人认为 PHP 从根本上讲就是有缺陷或混乱的,称它曾是个“垃圾堆大火”,如果从零开始,它仍然比替代方案差。
  • 也有人反驳说,PHP 依然极其实用且高效,能很快交付 Web 应用。

实用主义 vs 日益增长的复杂性

  • 最初的吸引力:几行代码、上传、刷新”的工作流,对初学者非常友好。
  • 有人担心 PHP 和 WordPress 变得越来越“像 Java”且更加复杂,失去了部分这种简单性(例如 Gutenberg、npm 构建链)。
  • 反驳观点:旧式写法依然可用;之所以出现更严格的实践,是因为大型 PHP 系统已经变得难以维护。

类型、数据结构与工具链

  • PHP 现在有很强的类型特性;被提到的主要缺失是泛型。declare(strict_types=1) 可以减少类型强制转换问题。
  • Psalm 和 PHPStan 这类静态分析器提供类似 TypeScript 的编译时检查;有人称它们的流分析非常出色。
  • 批评者指出,stdlib API 不一致、过于以数组为中心,以及数组行为令人困惑,这一直是长期 bug 来源。

框架、生态与使用场景

  • Laravel、Livewire、Inertia、HTMX 和 Alpine.js 因能支持简单的服务端渲染或由服务端协调的 UI 而受到称赞,这与沉重的 JS SPA 形成对比。
  • PHP 被描述为 HTML + 轻量 JS 的“终极后端 for 前端”,适合 CRUD 和 I/O 密集型应用。
  • 有人说许多当前的 PHP 部署都属于遗留系统;在很多新项目中,PHP 可能不再是最佳选择。

性能、兼容性与版本

  • PHP 7+ 被认为带来了很大的性能提升;8.3 则带来更多渐进式改进(例如特定的 CPU 优化)。
  • 向后兼容总体上很强但并不完美;每个版本都会有弃用和一些小破坏。
  • 与 Python 2→3 相比,PHP 被描述为几乎没有那么多“版本风波”,尽管非常老的 PHP 版本在野外仍然存在。

互操作、替代方案与工具

  • 讨论了 PHP 与 Java/.NET 的互操作(历史上的 Quercus、当前的 PeachPie、以及用于 C 的 FFI),但其中许多努力看起来比较小众或过时。
  • 有些人认为“有很多更好的替代方案”(例如更干净的 stdlib 或数据结构),但并没有对单一更优替代品形成明确共识。
  • PHP 团队被描述为速度快、CI/CD 开销低;PHP 的调试能力被认为比 Java 弱。
  • 安装体验存在争议:有人觉得官方文档复杂,另一些人则说包管理器或 Docker 让它变得很简单。