Skip to content

新增支持验证器、Http 验证器、枚举

Compare
Choose a tag to compare
@Yurunsoft Yurunsoft released this 13 Nov 06:22

此次更新除了日常修复bug以外,提升了数据库操作性能,新增验证器、Http 验证器、枚举。距离1.0正式版发布已经不远啦!

验证器

// 限于篇幅,只列出其中一种验证,其它的请查阅文档
@Decimal(min=-0.01, max=999.99, accuracy=2, message="小数必须大于等于{min},小于等于{max},小数点最多保留{accuracy}位小数,当前值为{:value}")

枚举

<?php
namespace ImiDemo\HttpDemo\MainServer\Enum;
 
use Imi\Enum\BaseEnum;
use Imi\Enum\Annotation\EnumItem;
 
class Status extends BaseEnum
{
    /**
     * @EnumItem("正确")
     */
    const YES = 1;
 
    /**
     * @EnumItem("错误")
     */
    const NO = 0;
}

// 使用:
// 根据名称获得常量值
Status::getValue('YES');
 
// 根据值获得文字说明
Status::getText(Status::YES);
 
// 根据值获得 @EnumItem 注解对象
Status::getData(Status::YES);
 
// 获取枚举类中所有名称
Status::getNames();
 
// 获取枚举类中所有值
Status::getValues();

更新日志:

新增

优化

  • 注解扫描支持更多命名空间
  • 完善 buildRuntime 报错提示
  • 优化冷启动、热重启时错误刷屏问题
  • 调整BeanFactory实例化对象初始化执行顺序为:__construct -> injectProps -> __init
  • 新增支持数据库 statement 缓存化,避免重复创建 statement,提升性能
  • 优化数据库查询器查询时出现错误的处理
  • AroundJoinPoint->proceed()方法支持传参

修复

  • 修复 IMI.MAIN_SERVER.WORKER.START.APP 只执行一次的问题
  • 修复致命错误出错代码定位错误问题
  • 修正 PoolItem 未按照设计思路计数的问题
  • 修复注入属性问题
  • 修复修改注解并热重启后没有生效的问题
  • 修复部分类无法注入问题
  • 修复PDO模式下,MySQL超时报MySQL server has gone away的问题