react php 没有 react/react 总包,核心是 react/event-loop;需按需组合组件,php ≥7.2,依赖 ext-event 或 ext-uv(否则回退 streamselectloop);必须显式调用 $loop->run() 并注册监听器或定时器,且须引入 vendor/autoload.php。

React PHP 的核心包不是 react/react
很多人搜“Composer 安装 React PHP”,直接执行 composer require react/react,结果报错:Could not find package react/react。这是因为 React PHP 是一组解耦的组件库,没有一个叫 react/react 的“总包”。它靠组合使用基础组件来构建异步应用。
真正该装的是最小运行时:比如 react/event-loop —— 这是所有 React PHP 项目的起点,提供事件循环(如 LibuvLoop、ExtEventLoop)。其他组件(HTTP、DNS、Socket)都依赖它。
- 只做简单定时任务或 I/O 监听?装
composer require react/event-loop就够了 - 要开 HTTP 服务?再加
composer require react/http(它会自动拉取react/event-loop和react/socket) - 别手动装
react/react或reactphp/reactphp—— 这些不存在,也不是官方组织下的有效包
PHP 版本和扩展限制很实际
React PHP 不支持 PHP 7.2 以下版本,且部分功能强依赖扩展。比如:
-
ext-event:启用EventLoop的高性能模式,但 Windows 下默认不可用,macOS 需brew install libevent+ PECL 安装 -
ext-uv:提供UvLoop,性能更好,但 PHP 8.1+ 才稳定,Ubuntu/Debian 需额外编译安装 - 没装任何扩展时,默认回退到
StreamSelectLoop—— 它兼容性最好,但性能差、不支持信号(SIGINT等),开发调试没问题,线上慎用
检查方法很简单:php -m | grep -E "event|uv"。如果什么都没输出,就老实用 StreamSelectLoop,别硬配。
常见错误:启动后立即退出或卡住
写完代码跑起来,控制台没报错,但程序秒退或没响应——大概率是忘了 $loop->run(),或者调用了但没注册任何监听器。
典型错误写法:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
$loop = React\EventLoop\Factory::create(); // 忘了 run(),或者只 run() 没加 timer / stream / signal $loop->run(); // 程序立刻退出
正确做法必须有“活事”让它干:
- 加个定时器:
$loop->addTimer(1.0, function () { echo "tick\n"; }); - 监听 socket:
$server = new React\Socket\Server('127.0.0.1:8080', $loop); - 哪怕只是等 Ctrl+C:
$loop->onSignal(SIGINT, function () use ($loop) { $loop->stop(); });
没这些,StreamSelectLoop 一启动就发现“无事可做”,直接返回。
vendor/autoload.php 加载失败?检查 Composer 自动加载配置
运行时报 Fatal error: Class 'React\EventLoop\Factory' not found,不是没装包,而是没引入自动加载文件。
- 确保脚本开头有:
require __DIR__ . '/vendor/autoload.php'; - 确认
composer.json在当前目录,且已执行过composer install(不是dump-autoload单独操作) - 如果用 Docker 或部署环境,注意
vendor/是否被忽略或未复制过去 —— React PHP 不提供单文件分发版,必须带 vendor
别试图用 include 手动引每个类文件,Composer 的 PSR-4 自动加载是唯一可靠方式。
React PHP 的复杂性不在安装命令,而在理解它“没有主入口、全靠组合、事件循环必须显式驱动”这个前提。漏掉任意一环,它都不会自己动起来。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










