笔记文档: Event-driven, non-blocking I/O with PHP
今天推荐的工具笔记文档: ReactPHP是一个用于PHP事件驱动编程的低级库。它的核心是一个事件循环,在此基础上提供低级实用程序,例如:流抽象、异步DNS解析器、网络客户端/服务器、HTTP客户端/服务器以及与进程的交互。第三方库可以使用这些组件来创建异步网络客户端/服务器等.
今天推荐的工具笔记文档: 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是生产准备和战斗测试与数百万的安装从世界各地的各种项目。
它的事件驱动的架构使它非常适合高效的网络服务器和客户端处理数百或数千个并发连接,长时间运行的应用程序和许多其他形式的具有非阻塞I/O操作的协作多任务。
ReactPHP的特别之处在于它生动的生态系统,其中包含数百个第三方库,允许您与许多现有系统集成,例如公共网络服务,数据库系统和其他第三方api。
ReactPHP默认是非阻塞的。使用worker阻塞I/ o
事件循环基于反应器模式(因此得名),并受到EventMachine (Ruby), Twisted (Python)和Node.js (V8)等库的强烈启发。
用于高速敏捷开发的PHP客户端和路由器库以及用于实时应用程序消息传递的WAMP (Web应用程序消息协议)
voryx/Thruway
PPM是现代PHP应用程序的流程管理器、增压器和负载平衡器.
php-pm/php-pm
node-ar-drone的端口,允许用户通过PHP控制Parrot AR无人值守进程
jolicode/php-ar-drone
异步WebSocket服务
ratchetphp/Ratchet
Redis异步PHP客户端库建立在ReactPHP之上
nrk/predis-async
一个纯PHP的Redis服务器实现
clue/redis-server
你有一个问题,需要帮助与ReactPHP?
别担心,我们是来帮你的!
作为第一步,检查每个组件附带的详细文档(请参阅上面每个组件的单独文档的链接)。如果您发现您的问题在文档中没有得到回答,那么很有可能它与更多人相关。请不要犹豫,将您的问题作为议题提交到相关组件,以便其他人也可以参与。
reactphp/reactphp
on
Gitter.im
. 我们中的许多人都可以在这个频道上找到答案,所以很多问题在几分钟到几个小时内就能得到回答。 我们也使用这个渠道来宣布所有的新版本和正在进行的开发工作
Also follow
@reactphp在推特上更新。我们主要将其用于值得注意的、更大的更新,并保持社区对正在进行的开发工作的更新。你可以用 #reactphp
标签,如果你有任何分享!
我们是一个非常开放的项目,我们希望尽可能公开沟通,这样更多的人可以参与并帮助获得最佳解决方案。与此同时,我们意识到有些事情最好私下解决。
不管你只是想说
谢谢, 想要报告安全问题或想要帮助赞助某个功能开发,您可以通过发送电子邮件来私下联系核心团队
[email protected]
. 请记住,我们是一个由志愿者组成的小团队,我们会尽我们所能支持任何伸出援手的人.
你想支持ReactPHP吗?太棒了!让我们从让世界知道为什么你认为ReactPHP是了不起的开始,并尝试帮助其他人加入进来!发一条推特,写一篇博客,在本地用户组或会议上做一次演讲,甚至写一本书。你可以通过很多方式提供帮助。你可以私下联系我们,通过我们的支持渠道帮助别人. 谢谢!