PHP 事件扩展 Event 发布 3.0.0 beta 版本,正式支持 PHP 8

栏目: 软件资讯 · 发布时间: 4年前

内容简介:PHP 事件扩展 Event 对 libevent 库进行了封装,提供了面向对象的编程接口。开发者基于 Event 扩展,可以用 PHP 快速编写出事件驱动的应用程序。包括事件驱动非阻塞的 HTTP/HTTPS 服务器和客户端、定时器和信号等...

PHP 事件扩展 Event 对 libevent 库进行了封装,提供了面向对象的编程接口。开发者基于 Event 扩展,可以用 PHP 快速编写出事件驱动的应用程序。包括事件驱动非阻塞的 HTTP/HTTPS 服务器和客户端、定时器和信号等。

Event 扩展的维护者 Ruslan Osmanov 是一名俄罗斯程序员,同时维护了3个PHP事件扩展:

  • Event(libevent),Ev(libev),Eio(libeio),其中 Event 开发活跃度最高。
  • 像 ReactPHP、WorkerMan、AmPHP 这些内存常驻、事件驱动的 PHP 框架底层用的就是上面这些事件库的 PHP 封装。

Event 提供的 PHP 代码示例:https://bitbucket.org/osmanov/pecl-event/src/master/examples/

Event 提供的 PHP 官网文档:https://php.net/event

一个单进程事件驱动非阻塞的 HTTP 服务器,包含非阻塞的信号和周期性定时器,多个服务并发执行:

<?php

// 事件管理器
$base = new EventBase();

// 事件驱动非阻塞的HTTP服务器
$http = new EventHttp($base);
$http->bind('0.0.0.0', 8888);
$http->setDefaultCallback(function($req) {
	$buf = new EventBuffer();
	$req->addHeader('Content-Type', 'text/html; charset=utf-8', EventHttpRequest::OUTPUT_HEADER);
	$buf->add('<html>Hello World</html>');
	$req->sendReply(200, 'OK', $buf);
	return;
});

// 事件驱动非阻塞的HTTP客户端
// EventHttpConnection::makeRequest

// 在终端 Ctrl+C 发送 SIGINT 信号给 PHP 进程
$signal = new Event($base, SIGINT, Event::SIGNAL, function() use (&$base) {
	echo "\n捕获 SIGINT 信号,关闭事件循环,退出程序\n";
	$base->stop();
});
$signal->add();

// 周期性定时器,每隔 1/2 秒触发一次
$timer = new Event($base, -1, Event::TIMEOUT | Event::PERSIST, function() use (&$timer) {
	echo date('Y-m-d H:i:s'). "\n";
});
$timer->add(1/2);

// 启动事件循环
$base->loop();

 


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

妙趣横生的算法(C++语言实现)

妙趣横生的算法(C++语言实现)

胡浩 / 清华大学出版社 / 2014-10-1 / 59.80元

《妙趣横生的算法(C++语言实现)》内容丰富,生动有趣,寓教于乐,旨在帮助读者学习数据结构和算法的相关知识,从而开阔眼界,培养编程兴趣,提高编程能力,增强求职的竞争力。如果您想提高自己对算法和数据结构的理解能力,在程序设计之路上走得更远,那么请翻开《妙趣横生的算法(C++语言实现)》,仔细研读吧,它将助您一臂之力。 《妙趣横生的算法(C++语言实现)》以通俗易懂的语言深入浅出地介绍了常用的数......一起来看看 《妙趣横生的算法(C++语言实现)》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具