imi v0.2.1 发布,新增验证器、Http 验证器、枚举

来源: 投稿
2018-11-13 14:30:00

关于此次更新

此次更新除了日常修复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的问题

介绍

IMI 是基于 Swoole 开发的协程 PHP 开发框架,完美支持 Http、WebSocket、TCP、UDP 开发,拥有常驻内存、协程异步非阻塞IO等优点。

IMI 框架文档丰富,上手容易,致力于让开发者跟使用传统 MVC 框架一样顺手。

IMI 框架底层开发使用了强类型,易维护,性能更强。支持 Aop ,支持使用注解和配置文件注入,完全遵守 PSR-3、4、7、11、15、16 标准规范。

框架的扩展性强,开发者可以根据实际需求,自行开发相关驱动进行扩展。不止于框架本身提供的功能和组件!

官网:https://www.imiphp.com/
文档手册:https://doc.imiphp.com/

代码仓库:
码云:https://gitee.com/yurunsoft/IMI
Github:https://github.com/Yurunsoft/IMI

空项目:https://gitee.com/yurunsoft/empty-imi-demo
功能Demo:https://gitee.com/yurunsoft/imi-demo

寻有缘人

想要加入我们吗?开源项目不能只靠一两个人,而是要靠大家的努力来完善~

我们需要你的加入,你可以做的事(包括但不限于以下):

展开阅读全文
点击加入讨论🔥(2) 发布并加入讨论🔥
2 评论
11 收藏
分享
返回顶部
顶部