更新日志

v2.5.6(2021年09月16日)

  • 新增
    验证器组件
  • 新增
    @param注解添加validate="", alias=""属性支持
  • 新增
    HTTP服务添加行为验证码组件
  • 新增
    HTTP服务添加点图验证码组件
  • 新增
    @Validate注解支持
  • 新增
    Validate对应的生命周期处理
  • 优化
    服务开箱逻辑
  • 优化
    图形验证码的调用方式
  • 优化
    MQTT服务,改为框架底层自动兼容v3/v5协议
  • 优化
    RPC服务开箱流程,把根目录下的rpc目录迁移到开箱自动创建
  • 修复
    MQTT服务,生命周期缺少上下文管理
  • 修复
    jwt_error生命周期引用错误的BUG
  • 修复
    csrf_error生命周期引用错误的BUG

v2.5.5(2021年09月08日)

  • 新增
    \x\controller\WebSocket基类,添加一个get_current_fd()方法,用于获取当前客户端的fd连接标识
  • 新增
    路由限流器组件
  • 新增
    IP限流器组件
  • 新增
    @Limit路由限流器注解支持
  • 新增
    路由表组件
  • 新增
    字符串操作组件
  • 新增
    短链接生成组件
  • 新增
    订单编号生成组件
  • 新增
    时间日期操作组件
  • 优化
    框架底层部分单例类改成复用单例基类
  • 修复
    MongoDb连接池在关闭的情况下也启用了连接池检测的BUG
  • 修复
    某些注解生命周期默认处理逻辑不正确的BUG

v2.5.4(2021年09月02日)

  • 新增
    Mongodb组件支持
  • 新增
    Swoole/Table组件支持
  • 新增
    Swoole/Atomic组件支持
  • 新增
    Config组件,添加一个has方法
  • 修复
    某些场景下,websocket开箱错误的bug
  • 修复
    使用守护进程启动服务后,执行热更新命令后,无法正常使用stop命令的bug

v2.5.3(2021年08月28日)

  • 新增
    Container上下文组件,新增一个has()方法
  • 修复
    /config/view.php,默认缺少tpl_replace_string选项的问题
  • 修复
    缺少route_error生命周期回调处理的BUG
  • 修复
    缺少jwt_error生命周期回调处理的BUG
  • 修复
    缺少csrf_error生命周期回调处理的BUG
  • 修复
    HttpMonitor控制台,详情显示错误的BUG
  • 修复
    使用cmd命令快速创建controller,无法正常创建的BUG
  • 修复
    RPC服务中心,删除某服务再次重新添加后,没有正确显示服务列表的BUG

v2.5.2(2021年08月24日)

  • 新增
    RPC服务新增注解支持
  • 新增
    MQTT服务新增注解支持
  • 优化
    RPC服务解析错误时使用英文单词说明,改为中文说明,统一读取Tips组件
  • 修复
    Rpc控制器基类的已知Bug
  • 修复
    当Mysql连接池为0时,生命周期没有正常回调的BUG

v2.5.1(2021年08月20日)

  • 新增
    RPC服务加入系统基类控制器的支持
  • 优化
    MQTT账号密码改为读取密码器设置
  • 修复
    修复已知BUG

v2.5.0(2021年08月09日)

  • 新增
    框架加入开箱组件,根据启用不同的服务类型,自动创建app初始目录
  • 新增
    新增一个worker_start生命周期处理,对应WorkerStart事件,用于支持开发者对自身业务的一些服务初始化工作
  • 新增
    加入服务启动过程日志记录
  • 新增
    加入调试模式下,MQTT服务的设备请求日志记录
  • 优化
    框架核心架构调整
  • 优化
    Crontab定时器组件改为,支持Linux风格,并保留原版本风格支持
  • 优化
    重新规范命名,整个框架的环境常量
  • 修复
    修复RpcClient组件最大请求数无效的BUG
  • 删除
    废弃请求容器的概念,改为请求上下文管理

v2.0.14(2021年07月09日)

  • 新增
    新增Rpc可以自定义返回的msg内容

v2.0.13(2021年07月08日)

  • 修复
    紧急修复Server启动服务时,载入配置项错误的BUG,这在Swoole4.6中会导致服务无法启动
  • 删除
    删除MQTT消息事件中遗留的var_dump调试代码

v2.0.12(2021年07月08日)

  • 优化
    优化RPC服务错误异常报告记录
  • 优化
    RPC服务中心单账号改为多账号配置
  • 修复
    重构RPC服务底层,将服务配置由Redis存储json,改为SETS+HASH结构,优化了节点评分效率,服务中心支持查看当前节点请求数

v2.0.11(2021年07月05日)

  • 新增
    新增MQTT服务端服务支持
  • 新增
    server配置文件新增4个配置项

v2.0.10(2021年07月01日)

  • 优化
    优化HTTP-VIEW组件
  • 修复
    重构HTTP-DEBUG错误界面
  • 修复
    重构HTTP-404默认页面

v2.0.9(2021年06月30日)

  • 优化
    更新所有文件头,改成SW-X专属的风格,由于我之前vscode的快捷方式,一直配置了ThinkPHP的风格,最近有人反馈这样会影响初次使用体验

v2.0.8(2021年06月08日)

  • 新增
    新增Restful组件-API的返回值格式封装
  • 修复
    修复HTTP服务判断文件上传后缀限制不正确的BUG

v2.0.7(2021年04月29日)

  • 新增
    服务支持切换协程状态
  • 新增
    HTTP服务支持设置静态文件代理访问

v2.0.6(2021年04月27日)

  • 新增
    新增Csrf令牌注解支持
  • 新增
    新增JWT令牌注解支持
  • 优化
    优化MySq-ORM的update、insert语句,在传递null时被强制转换成""的BUG
  • 优化
    优化MySq-ORM的limit语句,支持mysql锁语句
  • 优化
    优化PHP7.2环境下array_key_first()函数不存在的问题,使用key()代替array_key_first()函数
  • 修复
    修复Db-query()执行原生SQL语句,返回PDO实例的bug

v2.0.5(2021年03月26日)

  • 新增
    新增,RPC服务中心调试器组件,支持在线调试以及调试参数存储(保存在Redis)
  • 修复
    紧急修复Redis连接池,切换使用select()时,没有默认重置回DBindex的bug
  • 修复
    紧急修复Rpc若返回false、或0时,强制转成了空数组的BUG

v2.0.4(2021年03月20日)

  • 新增
    新增app.php设置项,可以设置PHP的最大内存上限,false则表示不设置
  • 优化
    优化Mysql连接池改为可自定义多个连接池
  • 优化
    优化Redis连接池改为可自定义多个连接池
  • 修复
    解决容器对定时任务的影响,导出内存溢出的BUG
  • 修复
    修复Redis组件无法正确使用select方法的问题
  • 删除
    删除进程级容器模块

v2.0.3(2021年03月11日)

  • 新增
    HTTP服务的Request组件,新增param()方法,用于自动判断获取post\get类型的请求参数
  • 新增
    HTTP服务的Request组件,新增file()方法,用于获取文件域的请求参数
  • 新增
    HTTP服务的Request组件,优化get()、post()方法获取参数时可指定只返回某些字段
  • 优化
    优化HTTP服务Controller组件的fetch()方法,可传递header返回头
  • 优化
    优化View组件,视图文件不存在时,主动抛出异常提示
  • 修复
    修复某些因View组件引起的Ioc注入连接池场景,导致连接池无法自动回收的BUG

v2.0.2(2021年03月03日)

  • 优化
    优化Db的join组件支持子查询传入做为附表名称
  • 修复
    修复定时器载入时,错误在onStart阶段重复载入,导致定时任务执行失败的BUG
  • 修复
    修复Model基类不能正常使用Mysql事务功能

v2.0.1(2021年02月18日)

  • 新增
    重构了部分底层
  • 新增
    Db组件加入查询结果缓存支持
  • 优化
    优化了核心包的调用方式,底层改为门面转发调用
  • 优化
    重写了RpcClient客户端的调用方式
  • 优化
    重写RPC架构,从单条Redis->string存储服务,改成单服务使用Redis->lists存储服务,提高复用性。
  • 优化
    优化部分配置文件
  • 优化
    部分文件分布管理进行了优化

v1.2.31(2021年02月03日)

  • 新增
    Rpc客户端加入异步回调通知支持
  • 新增
    Rpc服务端加入业务层支持主动抛出错误使用$this->rpc_error=true 的方式,表示当次请求为异常请求,并记录到服务中心
  • 新增
    Rpc服务中心web组件,加入异常请求日志预览功能
  • 修复
    修复Rpc onTask事件多一行错误代码,导致提示警告错误的BUG

v1.2.30(2021年02月01日)

  • 新增
    HTTP服务,Request组件,新增一个raw()方法,用于支持接收raw类型的数据流,常用于接收第三方接口回调参数
  • 新增
    Redis连接池,新增一个prefix()方法,用于支持临时修改前缀标识符
  • 新增
    RPC服务支持异步任务池投递,当投递异步任务池时,投递成功则返回true
  • 优化
    优化RpcClient组件,加入最大延迟设置,当请求超过该值时,客户端将记录请求日志
  • 修复
    修复Db->table构造子查询时,表前缀没有自动加上
  • 修复
    修复Rpc-WEB服务中间组件,删除节点时本地文件缓存没有同步更新的BUG
  • 修复
    修复Rpc服务中心轮询检测TCP-IP是否故障没带端口的BUG
  • 修复
    修复RpcClient请求次数递归错误的bug

v1.2.29(2021年01月26日)

  • 优化
    优化Db->where条件在使用二维数组的时候,允许这种格式$where[] = 'id=1';
  • 优化
    优化de_bug模式,单独对error错误日志写入、SQL日志记录做开关,配置项在app.php文件内
  • 修复
    修复Db->where()条件对数字的字符串类型判断错误的bug
  • 修复
    修复Redis组件在传入list命令的时候报错的bug
  • 修复
    修复直接 new \x\Db的情况下没有正常自动回收的BUG

v1.2.28(2021年01月25日)

  • 修复
    修复HTTP控制器使用Ioc注解注入Db、Redis时,没调用return()归还连接,也不会触发__destruct回收的bug
  • 修复
    修复WebSocket控制器使用Ioc注解注入Db、Redis时,没调用return()归还连接,也不会触发__destruct回收的bug

v1.2.27(2021年01月23日)

  • 优化
    优化RpcWeb服务中心,为编辑节点不允许修改节点名称
  • 优化
    优化DbPool,加入析构函数自动归还链接,减少不规范开发导致的出错概率
  • 优化
    优化RedisPool,加入析构函数自动归还链接,减少不规范开发导致的出错概率
  • 修复
    修复RPC多次请求时,参数没递归传递正确的bug
  • 修复
    修复Redis没使用config前缀的BUG
  • 修复
    修复RpcClient客户端当设置成多次请求时,没有正确递归的bug
  • 修复
    修复RpcWeb服务中心,无法修改节点ip和端口的bug
  • 修复
    修复DbPool被PDO:MySQL server has gone away误杀的BUG

v1.2.26(2021年01月21日)

  • 优化
    优化Rpc服务,由单机服务中心,改为Redis统一存储服务。
  • 优化
    优化RpcWeb控制台,改为统一服务中心,Rpc的ping检测改为只在设置为服务中心的应用中启用。

v1.2.25(2021年01月19日)

  • 新增
    新增HTTP-RPC服务WEB控制台组件
  • 新增
    新增RPC服务可手动关闭支持
  • 修复
    修复异常监听当控制器调用类错误时,没有正常显示错误内容的BUG
  • 修复
    修复HTTP监控当控制器调用类错误时,没有正常记录日志的BUG
  • 修复
    修复Rpc服务send完成后立刻close导致客户端存在可能数据未正常接受就已经关闭的BUG
  • 修复
    修复HTTP-Monitor组件修改密码后无法正确登陆的BUG

v1.2.24(2021年01月12日)

  • 新增
    实现RPC微服务支持
  • 修复
    修复server服务无法正常启动的bug
  • 修复
    修复错误异常没正常监听到PHP报错的bug

v1.2.23(2021年01月08日)

  • 新增
    Param注解新增一个method参数,表示当为某个请求类型时,该注解才生效,不填写则默认任何请求都生效,该参数只对HTTP服务有效,WebSocket服务设置无效
  • 修复
    修复sw-x start时,没有初始化进程PID记录文件的BUG
  • 修复
    修复HTTP上传文件时,框架getSaveName自动删除了ROOT_PATH,导致没有返回完整的地址
  • 修复
    修复Param注解,当设置允许为空,并设置了正则表达式等过滤参数时,参数为空时也跑过滤规则的BUG

v1.2.22(2021年01月07日)

  • 新增
    新增HTTP请求记录WEB监控服务组件
  • 新增
    新增Db连接池小于等于0时异步调用生命周期回调通知
  • 新增
    新增Redis连接池小于等于0时异步调用生命周期回调通知
  • 新增
    新增默认时区配置
  • 优化
    错误异常监听

v1.2.21(2020年12月30日)

  • 新增
    新增一个CMD命令支持,用于生成初始控制器文件

v1.2.20(2020年12月11日)

  • 修复
    紧急修复,APP启动服务前错误载入了路由表,导致reload指令没办法正常重载业务代码

v1.2.19(2020年12月10日)

  • 新增
    新增,HTTP-Request请求类,新增一个is_ajax方法,用于判断当前请求是否为ajax类型

v1.2.18(2020年11月07日)

  • 新增
    新增,HTTP调试器,用于监听当前请求的框架处理流程和响应结果,便于调试,只有在app.de_bug == true的情况下开启
  • 优化
    优化,单元测试调试时,路由地址没进行自适应大小写的问题
  • 修复
    修复,容器无法正确存储除对象、闭包函数之外的其他类型数据的bug
  • 修复
    修复,自定义注解在服务初始化时,也加载了其他未自定定义的注解标签吗,导致单元测试注解无效的BUG
  • 修复
    修复,单元测试无法正常调试的BUG

v1.2.17(2020年10月30日)

  • 新增
    新增,TestCase单元测试注解,暂只支持HTTP服务应用
  • 新增
    新增,Db-ORM新增一个test方法,用于支持TestCase单元测试注解

v1.2.16(2020年10月28日)

  • 新增
    新增,自定义注解功能,所有自定义的注解类均为前置注解,加载顺序在内置环绕注解类之后。
  • 新增
    新增,Db-ORM支持whereOr操作
  • 新增
    新增,Db-ORM支持whereIn操作
  • 新增
    新增,Db-ORM支持whereNotIn操作

v1.2.15(2020年10月27日)

  • 新增
    Mysql/Redis新增获取不到连接池实例时,返回false,该优化主要面对定时任务【定时任务再onstart事件载入,优先级高于连接池载入的实例】
  • 优化
    优化Db的where操作,当为数组条件时,例如$where[] = ['id', 'in(1,2,3)', null];时,null条件不再进行字符串解析。
  • 优化
    优化了生命周期controller_error的判断流程,HTTP请求下没办法正确获取报错内容
  • 修复
    修复Param注解当过滤参数为数组类型时解析错误的BUG
  • 修复
    修复Client客户端发包,URL带端口号时不能正常发送,errCode为【704】的BUG
  • 删除
    删除swoole/library/event/Route.php这个多余文件

v1.2.14(2020年09月30日)

  • 新增
    WebSocket服务在open、close阶段记录于销毁请求容器-FPM-CURL组件
  • 优化
    优化了生命周期controller_error的判断流程,修复获取websocket事件错误
  • 修复
    修复WebSocket服务下,使用param函数无法正确获取参数
  • 修复
    修复定时任务载入事件,从onStart改为onWorkerStart,只有第一个worker线程启动时载入
  • 修复
    修复定时器中无法正常使用Mysql、Redis实例
  • 修复
    修复定时器、Swoole事件中无法调用WebSocket基类的fetch方法,改为最后一个参数加入server实例传入

v1.2.13(2020年08月16日)

  • 优化
    优化Db链:insert、insertGetId、update、setInc、setDec操作,字段名加入``字符串包裹,防止字段名冲突

v1.2.12(2020年08月08日)

  • 新增
    新增HTTP客户端组件封装,用于代替PHP-FPM-CURL组件
  • 修复
    修复生命周期,获取错websocket容器名称,导致没办法回调事件的BUG

v1.2.11(2020年08月06日)

  • 新增
    server新增一个配置项,package_max_length,修复文件上传不能大于2M的bug
  • 修复
    修复Client组件,HTTP请求无法正确调用Swoole原生支持方法的BUG

v1.2.10(2020年08月03日)

  • 新增
    Db类支持切换临时数据库连接实例,但其连接为PDO短连接,与连接池无关,同样需要调用return清空实例
  • 优化
    优化Param注解参数预设为真null时也执行,之前是isset为true时才执行
  • 优化
    优化Mysql连接池存活检测,改为15分钟检测50%的连接是否还存活
  • 优化
    优化,Ioc注解不再支持对静态控制器方法的使用,规范控制器方法都必须为动态方法,若检测为静态方法,将对route_error生命周期抛出status=Ioc Static的错误
  • 修复
    修复HTTP文件无法正确上传,返回上传路径错误的BUG
  • 修复
    Db的select查询失败优化为返回空数组[]
  • 修复
    修复新版本在onWorkerStart阶段依旧读取老定时任务配置不存在的BUG
  • 修复
    修复Mysql连接池过期,存活检测没有自动补充新连接的BUG
  • 修复
    修复Ioc注解,初始化类传入参数无法正常解析的BUG
  • 修复
    修复Ioc注解,调用类方法时传入参数无法正常解析的BUG

v1.2.9(2020年07月29日)

  • 新增
    新增Mysql连接池定时器检测功能,修复长时间没连接,MySQL报 server has gone away的错误
  • 修复
    修复Mysql连接数统计不正确的BUG

v1.2.8(2020年07月29日)

  • 新增
    Db新增一个exec方法,只允许执行原生除select外的SQL语句
  • 优化
    优化Db,where条件数组方式的时候,使用|符号可以让多个字段支持OR操作
  • 修复
    修复控制器重定向读取实例错误的BUG
  • 修复
    控制器重定向301改为默认302
  • 修复
    修复Db,where条件传入0不能正确解析的BUG
  • 修复
    修复Db,count条件在不传入field的情况下无法正确获取*的bug
  • 修复
    修复Model获取表名,rtrim导致的部分表名获取错误的BUG
  • 修复
    修复Db,使用同一个实例时,切换不同的数据表不会清空前置条件的bug
  • 修复
    修复DB,where条件传入空条件时不能正确解析的BUG
  • 修复
    修复请求级容器某些场景下会出现内存溢出的BUG
  • 修复
    使用Swoole官方的连接池重写了Mysql连接池,不再支持多库实例,跟最小连接数
  • 修复
    使用Swoole官方的连接池重写了Redis连接池,不再支持最小连接数
  • 修复
    Db的query只允许执行原生select查询,查询成功调用返回fetchAll的结果集

v1.2.7(2020年07月26日)

  • 修复
    修复路由绑定时填写大写字母不兼容的BUG
  • 修复
    修复控制器重复调用fetch输出页面内容会发生致命异常的bug

v1.2.6(2020年07月22日)

  • 优化
    更换新的模板引擎支持
  • 修复
    修复Db的debug方法无效的问题
  • 删除
    删除部分无用配置项

v1.2.5(2020年07月21日)

  • 新增
    配置文件加入参数,是否开启连接池统计监听定时器
  • 新增
    websocket推送失败,加入生命周期回调事件
  • 优化
    优化致命异常不进行生命周期回调,只有普通异常才回调,因为致命异常在Swoole中已经跳出协程底层,会导致拿不到协程容器。

v1.2.4(2020年07月20日)

  • 优化
    优化服务启动时自动初始化redis_pool_num.count和mysql_pool_num.count文件
  • 修复
    紧急修复Model类无法正确注入表名的BUG
  • 修复
    紧急修复【写入类型】Mysql连接池创建参数读取错误的BUG

v1.2.3(2020年07月20日)

  • 修复
    紧急修复WebSocket路由无法正确识别的BUG
  • 修复
    修复Param注解无法正确处理AES加密后的的数据包
  • 修复
    调整Websocket->param函数直接获取完整json,改为只获取data参数

v1.2.2(2020年07月20日)

  • 新增
    Db的update、delete方法新增判断条件,为无where条件时不执行返回false
  • 新增
    定时任务的注册方式,改为手动挂载在配置文件/config/crontab.php文件中
  • 新增
    sw-x status中加入当前Mysql连接数、Redis连接数状态、当前Swoole扩展版本、本机CPU最大支持核数
  • 修复
    修复Param注解不支持websocket参数过滤的BUG
  • 修复
    修复WebSocket服务的已知bug

v1.2.1(2020年07月19日)

  • 新增
    新增了双容器实现
  • 新增
    请求实例不再在实例之间传递,而是通过请求级容器获取、共享
  • 新增
    实现了框架与请求实例之间的解耦
  • 新增
    实现了请求与控制器之间的解耦
  • 优化
    重构了部分底层

v1.1.10(2020年07月18日)

  • 新增
    Db:新增一个insertGetId()的终结方法,为返回新增后的主键ID,使用得SELECT LAST_INSERT_ID() as num;语句获取
  • 修复
    Param注解修复value预设值无效的bug
  • 修复
    修复Param注解empty对参数传0也会校验不通过得bug

v1.1.9(2020年07月17日)

  • 修复
    紧急修复Error处理导致的内存溢出BUG

v1.1.8(2020年07月16日)

  • 新增
    路由请求类型校验,移动到全部注解之前进行校验
  • 修复
    修改了Param注解会根据路由限制的允许请求类型,自动切换参数过滤,不再获取全局参数

v1.1.7(2020年07月16日)

  • 新增
    Db新增5个聚合查询指令
  • 新增
    Db:join新增一个参数,是否使用表前缀,用于支持子查询构造植入join操作
  • 新增
    Db:新增一个value方法,用于获取单条记录的某个字段值/WebSocket服务错误监听回调事件
  • 修复
    修复Db:Select连接池return失败的bug

v1.1.6(2020年07月15日)

  • 新增
    新增路由监听失败的回调事件
  • 新增
    新增注解校验失败的回调事件
  • 新增
    新增HTttp/WebSocket服务错误监听回调事件
  • 新增
    新增路由扫描完成时的回调事件
  • 修复
    修复Db类,find返回二维数组的BUG

v1.1.5(2020年07月14日)

  • 新增
    HTTP控制器基类新增8个环境方法
  • 修复
    释放命令行获取参数的全局变量

v1.1.4(2020年07月13日)

  • 新增
    新增Param注解支持
  • 修复
    路由移动到Worker进程启动,便于热重载
  • 修复
    修复注解对WebSocket的支持
  • 修复
    修复extend目录命名空间无效的bug

v1.1.3(2020年07月12日)

  • 新增
    新增Model数据库模型支持

v1.1.2(2020年07月11日)

  • 新增
    Aop注解必须返回绝对值true才回继续向下执行
  • 新增
    Controller基类fetch()、view()方法加入try异常监听,若异常则直接返回false

v1.1.1(2020年07月08日)

  • 优化
    重构了部分底层
  • 优化
    服务启动改为sw-x特有文件,通过php命令行进行日常维护
  • 删除
    取消三种服务回调事件分开配置,如若需要多端多服务启动,需独立部署项目

v1.0.3(2020年07月05日)

  • 新增
    onReceive事件,加多一个data参数
  • 修复
    修复WebSocket分包错误的BUG
  • 删除
    WebSocket删除支持Cookie与Session的错误逻辑

v1.0.2(2020年06月12日)

  • 优化
    优化了部分框架核心代码
  • 优化
    从原来的服务共享事件回调模式,改成独立服务回调事件处理
  • 删除
    废弃路由模式切换

v1.0.1(2020年06月02日)

  • 新增
    小可爱诞生~