PHP Microservice Framework:Swoft v2.0.7按计划发布


斯沃夫特是什么?


Swoft是一个PHP高性能微服务协程框架。 它已经发布了很多年,并已成为php的最佳选择。 它可以像Go,内置的协程Web服务器和通用协程客户端一样,并且驻留在内存中,独立于传统的PHP-FPM。 有类似的Go语言操作,类似于Spring Cloud框架的灵活注释。


通过三年的积累和方向探索,Swoft使Swoft成为了PHP世界中的Spring Cloud,它是PHP高性能框架和微服务管理的最佳选择。


Github


https://github.com/swoft-cloud/swoft


Swoft v2.0.7


Swoft v2.0.7继续在v2.0.6v2.0.6 ,并已用于大量生产操作中,并已得到许多用户的认可和支持。 正式版进行了许多改进和优化,具有更好的性能。


  • 添加了Http Session功能组件,提供http会话管理,支持多个存储驱动程序
  • 增强的TCP服务器请求支持添加全局或相应方法中间件
  • 增强的Websocket服务器消息请求支持,用于添加全局或相应的方法中间件

Http会话


使用Composer安装swoft /会话组件


  • 执行composer require swoft/session项目composer.json所在目录中的composer require swoft/session
  • Swoft\Http\Session\SessionMiddleware中间件添加到全局中间件

app/bean.php


  'httpDispatcher' => [ // Add global http middleware 'middlewares' => [ \Swoft\Http\Session\SessionMiddleware::class, ], ], 

默认基于本地文件驱动程序,保存在runtime/sessions目录中

关于驱动程序的更多信息只需要配置相应的handler
例如,配置Redis驱动程序:


 'sessionHandler' => [ 'class' => RedisHandler::class, // Config redis pool 'redis' => bean('redis.pool') ], 

Websocket消息传递中间件


  • 全球中间件

app/bean.php配置:


  /** @see \Swoft\WebSocket\Server\WsMessageDispatcher */ 'wsMsgDispatcher' => [ 'middlewares' => [ \App\WebSocket\Middleware\GlobalWsMiddleware::class ], ], 

  • 代理控制器

 /** * Class HomeController * * @WsController(middlewares={DemoMiddleware::class}) */ class TestController {} 

TCP请求中间件


  • 全球中间件

app/bean.php配置:


  /** @see \Swoft\Tcp\Server\TcpDispatcher */ 'tcpDispatcher' => [ 'middlewares' => [ \App\Tcp\Middleware\GlobalTcpMiddleware::class ], ], 

  • 代理控制器

 /** * Class DemoController * * @TcpController(middlewares={DemoMiddleware::class}) */ class DemoController { // .... } 

更新日志


升级提示:
  • Swoole\WebSocket\Server::push在第4.4.12之后,第四个参数$finish更改为int类型。
  • tcp服务器的TcpServerEvent::CONNECT事件参数保持与接收和关闭相同。 $fd, $server交换头寸。


Github


https://github.com/swoft-cloud/swoft


固定的


  • 修复配置注入时,如果找不到该值,则将使用相应类型的默认值覆盖该属性,从而导致该属性的默认值被覆盖d84d50a7
  • 已修复在ws服务器中使用消息计划时,未过滤任何空数据,从而导致另一个响应的问题。 避免方法swoft-cloud / swoft#1002 [d84d50a7]( https://github.com/swoft-cloud/swoft-component/ Pull / 522 / commits / d84d50a76c4c7ff19dc0896868745cfe8f0d93c9)
  • 已修复在tcp服务器中使用消息调度时,未过滤任何空数据,从而导致另一个响应的问题。 07a01ba1
  • 修复了独立使用控制台组件C569C81A时缺少的swoft / stdlib库依赖性
  • 修复ArrayHelper::get当输入键为整数时,参数parameter不正确a44dcad
  • 使用表格修复控制台渲染,计算int值时,计算宽度报告类型错误74a835ab

  • 修复了组件用户中无法自定义默认错误处理级别4c78aeb的错误
  • 修复启用和禁用组件设置isEnable()无法正常工作的问题
  • 修复在cygwin环境中使用uniqid()方法必须将第二个参数设置为true c7f688f
  • 修复了无法在cygwin环境中设置进程标题并导致错误c466f6a
  • 修复了无法使用http response->delCookie() 8eb9241删除浏览器cookie数据的问题
  • 修复了ws服务器消息调度,收到的ext数据不一定是导致错误的数组ff45b35
  • 修复按时间分割的日志文件c195413
  • 修复日志JSON格式的小问题a3fc6b9
  • 固定rpc服务提供商getList两次调用fd03e71
  • 修复redis cluster不支持auth参数7a678f
  • 修复模型查询json类型,不支持array 6023a9
  • 固定的Redis multi操作未及时连接E5F698
  • 修复redis不支持expireAtgeoRadius 749241
  • 修复了Crontab时间戳检测偏差问题eb08a46

更新(Update)


  • 在呈现帮助消息ConsoleEvent::SHOW_HELP_BEFORE d3f7bc3之前,更新控制台还会发出一个事件。
  • 简化和统一http,ws,tcp,rpc服务器管理命令逻辑f202c826
  • 更新ws和tcp Connection类以添加newFromArraytoArray方法,以利于通过第三方存储( redis )[a8b0b7c]( https://github.com/swoft-cloud/swoft -component / pull)导出信息和恢复连接/ 528 / commits / a8b0b7c77d56d4392eba75d13a911816b9dc0cee)
  • 优化服务器以添加统一的Swoole管道消息事件处理程序,在ws,tcp中使用swowt事件处理进程间消息1c51a8c

增强功能


  • 现在,tcp请求支持添加全局或相应的方法中间件,其过程和用法类似于http中间件。 仅在使用系统调度 6b593877 时有用
  • 现在,websocket消息请求支持添加全局或相应的方法中间件,其过程和用法类似于http中间件。 仅在使用系统计划 9739815 时有用
  • 事件管理允许在每次事件分派50bf43d3之后设置destroyAfterFire来清除事件中携带的数据
  • 数据库错误异常添加code返回fd306f4
  • 协程文件操作writeFile新的写入失败异常08c4244
  • RPC新参数验证8646FC5

Github


https://github.com/swoft-cloud/swoft

Source: https://habr.com/ru/post/zh-CN476508/


All Articles