事件驱动,非阻塞I/O的PHP
ReactPHP是PHP中用于事件驱动编程的底层库。它的核心是一个事件循环,在此基础上它提供了底层实用程序,例如:流抽象、异步DNS解析器、网络客户端/服务器、HTTP客户端/服务器以及进程间通信。第三方库可以使用这些组件创建异步网络客户端/服务器等。
$loop = React\EventLoop\Factory::create();
$server = new React\Http\Server($loop, function (Psr\Http\Message\ServerRequestInterface $request) {
return new React\Http\Message\Response(
200,
array(
'Content-Type' => 'text/plain'
),
"Hello World!\n"
);
});
$socket = new React\Socket\Server(8080, $loop);
$server->listen($socket);
echo "Server running at http://127.0.0.1:8080\n";
$loop->run();
这个用ReactPHP编写的简单的Web服务器对每个请求都响应 "Hello World"
ReactPHP是PHP中用于事件驱动编程的底层库。
核心是一个事件循环,它在其上提供底层实用程序, 例如:流抽象,异步DNS解析器,网络客户端/服务器,HTTP客户机/服务器和与进程的交互。
第三方库可以使用这些用于创建异步网络客户端/服务器等的组件。
ReactPHP已经可用于生产环境,并且经过来自世界各地的各种项目数百万次的安装测试。
由于事件驱动架构,使它非常适合高效的网络服务器和处理数百或数千个并发连接,长期运行的应用程序和许多其他无阻塞I / O操作的协作多任务形式。
ReactPHP之所以与众不同,是因为其活跃的生态系统具有数百个第三方库,可让您与许多现有系统集成 ,例如公共网络服务、数据库系统和其他第三方API。
- 生产就绪,并经过了实战测试。
- 稳固的,具有稳定的长期支持(LTS)版本。
- 不需要扩展,并且可以在任何平台上运行-没有任何借口!
- 利用可选扩展来获得更好的性能(如果可用)。
- 强烈建议使用最新版本的PHP 7 +,以获得最佳性能和支持。
- 支持旧版PHP 5.3+和HHVM,以实现最大兼容性。
- 精心设计的和可重复使用的组件。
- 分离的零件,因此可以用其他实现方式替换它们。
- 经过测试(单位和功能)。
- 尽可能采用标准PSR,以实现最大的互操作性。
- 旨在“技术中立”,因此您可以使用首选的应用程序堆栈。
- 小型核心专业团队由外部贡献者的大型网络支持。
默认情况下,ReactPHP是非阻塞的,workers阻止I / O。 事件循环基于反应堆模式(因此命名),并且强烈受诸如EventMachine(Ruby),Twisted(Python)和 Node.js(V8)。
核心组件
EventLoop ReactPHP的核心反应器event-loop 文档
Stream 事件驱动的可读写流,用于ReactPHP中的非阻塞I / O 文档
Promise Promises/A 的PHP实现 文档