最好的语言 PHP
从 PHP5 入了这个深坑以来已经有十多年,记录一些感觉有点东西的相关
写文的 Dec 2024,PHP 在 TIOBE 上的排行已经下降到 12 位,Dec 2023 时为 7
同时,Rust 的排行为 14 位,Dec 2023 时为 18
不过个人觉得 PHP 在 PHP8 这一代的进步是显著的,即有 JIT,也有注解,Match 表达式等新特性的加入
PHP 依旧充满活力!
Laravel
Laravel 是优雅的 PHP Web 开发框架,优雅!太优雅了!
生态丰富,历史悠久,大多数情况下用它总没错!
YAF, Phalcon
早期吐槽 PHP 的主要问题之一就是性能,于是催生了以 C 语言写扩展的方法去做框架
YAF 的取名还是 Old fashioned 的 Yet Another XXX
比 YAF 提供了更多的功能
还维护了一个 Zephir language,用一个类似 PHP 语言的方式去写 PHP 扩展
Phalcon 的后期也是 Zephir/C 都有
Swoole 与 Open Swoole, Swow
Swoole 也是 C 扩展,基于异步事件驱动,为 PHP 引入了协程的概念,类似 Golang 的 goroutine
不过 Swoole 的团队真是一言难尽,搞出了下面这个操作后,逐步分离出来了 Open Swoole
Swoole’s admin interface hot-loads code from a third-party server ? · Issue #4434 · swoole/swoole-src
https://github.com/swoole/swoole-src/issues/4434
致力于使用最小 C 核心及多数 PHP 代码以支持 PHP 高性能网络编程
类似 Swoole
Hyperf, LaravelS
高性能、高灵活性的渐进式 PHP 协程框架,内置协程服务器及大量常用的组件
可基于 Swoole 或 Swow, 常驻内存,参考了 Laravel 的优雅
把 Laravel 架在 Swoole 上,以常驻内存的方式来加速其运行
workerman, webman
纯 PHP 开发的开源高性能的 PHP 应用容器
靠多 Worker 进程,Epoll + 非阻塞 I/O
webman 是基于 workerman 的 HTTP 服务框架
追求性能的话,现在首推这两
AMPHP
PHP 在 8.1 加入了 Fibers,中文译为 纤程
纤,比线更细!
Fiber 主要用于为异步 I/O 实现协程,提供了独立栈分配、函数调用的暂停和恢复功能
就出自 AMPHP ext-fiber
投票结果以 50 对 14 通过
可以看到,PHP 创始人 Rasmus Lerdorf 和 Swoole 创始人韩天峰@matyhtf 均投了反对票
ReactPHP
相较于 Swoole, Swow 等以 C 扩展的形式实现非阻塞 I/O,ReactPHP 是纯 PHP 的
- Supports latest version of PHP 8+ and PHP 7+ for best performance and support.
- Still supports legacy PHP 5.3+ and HHVM for maximum compatibility.
从它对 PHP 版本的支持中可以看到,也是老牌且相当不容易了
fiber 之后,ReactPHP 也加入了对其的支持,提供了一个 Async Utilities
PSL, Revolt
都为了非阻塞
box
把项目方便的打包成 PHAR
static-php-cli
构建独立的 PHP 二进制文件包括 cli, fpm, micro 三种模式
其中 micro 又可与单文件或 phar 结合,把 PHP 项目也打包为一个文件
Cool!
ext-php-rs
Rust Crate
用 Rust 写 PHP 扩展的库
甚至还提供 Async futures,但依赖 PHP fibers, php-tokio 和 PHP Revolt event loop
与 AMPHP, PSL, ReactPHP 或其它 Base on Revolt 的异步 PHP 库兼容
Cool!