新增支持验证器、Http 验证器、枚举
此次更新除了日常修复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();
更新日志:
新增
- 新增支持类常量注解,支持Enum枚举(https://doc.imiphp.com/components/struct/enum.html)
- 新增验证器(https://doc.imiphp.com/components/validation/index.html)
- 新增Http参数验证器(https://doc.imiphp.com/components/httpserver/validation.html)
- 新增 Worker::isTask() 方法
- 新增 dev/ext 工具,生成 IDE 帮助文件
优化
- 注解扫描支持更多命名空间
- 完善 buildRuntime 报错提示
- 优化冷启动、热重启时错误刷屏问题
- 调整BeanFactory实例化对象初始化执行顺序为:__construct -> injectProps -> __init
- 新增支持数据库 statement 缓存化,避免重复创建 statement,提升性能
- 优化数据库查询器查询时出现错误的处理
- AroundJoinPoint->proceed()方法支持传参
修复
- 修复 IMI.MAIN_SERVER.WORKER.START.APP 只执行一次的问题
- 修复致命错误出错代码定位错误问题
- 修正 PoolItem 未按照设计思路计数的问题
- 修复注入属性问题
- 修复修改注解并热重启后没有生效的问题
- 修复部分类无法注入问题
- 修复PDO模式下,MySQL超时报MySQL server has gone away的问题