当前位置: 首页 > 后端技术 > PHP

Swoft2.0.7如期而至

时间:2023-03-29 21:38:53 PHP

什么是Swoft?Swoft是一个基于Swoole扩展的PHP微服务协程框架。Swoft和Go一样,内置了协程Web服务器和常用的协程客户端,并且常驻内存,不依赖于传统的PHP-FPM。有类似Go语言的协程运行方式,类似SpringCloud框架的灵活注解,强大的全局依赖注入容器,完善的服务治理,灵活强大的AOP,标准的PSR规范实现等。通过三年的积累和方向探索,Swoft将Swoft内置到PHP世界的SpringCloud中,是PHP高性能框架和微服务治理的最佳选择。Githubhttps://github.com/swoft-clou...Swoftv2.0.72.0.7在2.0.6上继续扬帆起航,已经在大量生产运营中使用,得到了众多用户的肯定和支持。我们在正式版中做了很多改进和优化,性能更好。新增HttpSession功能组件,提供http会话管理,支持多种存储驱动增强TCP服务器请求支持添加全局或对应方法中间件增强Websocket服务器消息请求支持添加全局或对应方法中间件HttpSession通过Composer安装swoft/session组件执行composerrequire项目composer.json所在目录下的swoft/session,将Swoft\Http\Session\SessionMiddleware中间件添加到配置文件app/bean.php中的全局中间件中:'httpDispatcher'=>[//添加globalhttp中间件'middlewares'=>[\Swoft\Http\Session\SessionMiddleware::class,],],默认基于本地文件驱动,保存在runtime/sessions目录下,驱动只需要配置对应的handler类,比如配置redisdriver:'sessionHandler'=>['class'=>RedisHandler::class,//配置redispool'redis'=>bean('redis.pool')],websocket消息中间件全局中间件配置在app/bean.php:/**@see\Swoft\WebSocket\Server\WsMessageDispatcher*/'wsMsgDispatcher'=>['middlewares'=>[\App\WebSocket\Middleware\GlobalWsMiddleware::class],],作用于控制器/***ClassHomeController**@WsController(middlewares={DemoMiddleware::class})*/classTestController{}TCP请求中间件全局中间件配置在app/bean.php:/**@see\Swoft\Tcp\Server\TcpDispatcher*/'tcpDispatcher'=>['middlewares'=>[\App\Tcp\Middleware\GlobalTcpMiddleware::class],],作用于控制器/***ClassDemoController**@TcpController(middlewares={DemoMiddleware::class})*/classDemoController{//....}Githubhttps://github.com/swoft-clou...更新记录升级提示:Swoole\WebSocket\Server::push第四个参数$finish在swoole4.4.12之后改为int类型tcp服务器的参数TcpServerEvent::CONNECT事件与receive和close一致。$fd,$server交换位置。Repair(Fixed):修复config注入时,如果找不到值,会用对应类型的默认值覆盖属性,导致属性的默认值被覆盖。.避免methodswoft-cloud/swoft#1002d84d50a7Repairtcpserver使用消息调度时,没有过滤空数据,导致多响应。07a01ba1修复独立使用console组件时缺少swoft/stdlib库依赖c569c81a修复ArrayHelper::getinputkey为integer时报参数错误a44dcad修复console渲染使用table,有int值时,计算宽度报类型错误74a835ab修复错误组件用户无法自定义默认错误处理级别4c78aeb修复启用和禁用组件设置isEnable()不生效问题可以设置进程标题报错c466f6a修复使用httpresponse->delCookie()无法删除浏览器cookie数据的问题8eb9241修复ws服务器消息调度,接收到的ext数据可能不是数组导致错误ff45b35修复日志文件按时间split问题c195413修复日志JSON格式小问题a3fc6b9修复rpc服务提供者getList调用两次redis不支持expireAt、geoRadius749241修复crontab时间戳检测偏差问题eb08a46更新(Update):更新console并在渲染帮助信息前发送事件ConsoleEvent::SHOW_HELP_BEFOREd3f7bc3简化并统一http、ws、tcp、rpc服务器管理命令逻辑f202c826更新ws和tcpConnection类并添加newFromArray和toArray方便通过第三方存储(redis)导出信息和恢复连接的方法a8b0b7c优化服务器加入统一的swoolepipe消息事件处理,使用ws和tcp中的swoft事件处理进程Inter-message1c51a8c增强(增强):现在tcp请求支持添加全局或对应的方法中间件,过程和使用类似http中间件_只有在使用系统调度时才有用_6b593877现在websocket消息请求支持添加全局或对应的方法中间件,过程和使用http中间件类似。_只有在使用系统调度时才有用_9739815事件管理允许设置destroyAfterFire在每次事件调度后清理事件携带的数据验证8646fc5