Skip to content

Latest commit

 

History

History
1510 lines (974 loc) · 80.5 KB

CHANGELOG.md

File metadata and controls

1510 lines (974 loc) · 80.5 KB

0.17.9 (2024-11-01)

Features

  • Record, deprecated: deprecate Record class, should use Model instead (9b55e4c)
  • Req: 增加 isPatchisPutisDelete 方法 (6aaefe0)

0.17.8 (2024-09-01)

Bug Fixes

  • ClassMap: 根目录生成类名错误 (85a8dcb)

Features

  • Wei 增加 getAliases 方法 (69e66df)
  • Snowflake: 增加机器编号到序列的缓存键名中,减少冲突 (e6c4757)

Dependencies

  • @miaoxing/dev: upgrade from 9.1.3 to 9.2.0

0.17.7 (2024-08-03)

Dependencies

  • @miaoxing/dev: upgrade from 9.1.2 to 9.1.3

0.17.6 (2024-07-31)

Dependencies

  • @miaoxing/dev: upgrade from 9.1.1 to 9.1.2

0.17.5 (2024-05-30)

Features

  • Str: 增加 goods 单数转为 goods (45a8b6b)

0.17.4 (2024-03-31)

Bug Fixes

  • Model: Coll 获取服务时出错 (1e6f8f0), closes #2

Features

  • Req: getHeader 支持键名包含 -,如 Access-Control-Request-Method (6436091)
  • Time: 增加 setTimestamp 方法 (49c709f)

Dependencies

  • @miaoxing/dev: upgrade from 9.1.0 to 9.1.1

0.17.3 (2024-02-20)

Features

  • 增加 sucerr 函数,方便外部使用 (475d121)
  • Money: 增加 Money 服务,用于计算金额 (1391fcb)

0.17.2 (2024-01-08)

Dependencies

  • @miaoxing/dev: upgrade from 9.0.0 to 9.1.0

0.17.1 (2023-12-31)

Bug Fixes

  • ClassMap: 类重复时,记录类名错误 (4e5c3a7)

Features

  • Db: delete 允许删除所有数据 (ba82c2d)
  • Model, experimental: 增加模型序列化 (d7a7246)

Dependencies

  • @miaoxing/dev: upgrade from 8.2.4 to 9.0.0

0.17.0 (2023-11-30)

Bug Fixes

  • Redis: foreach() argument must be of type array|object, bool given when get empty keys (f2fbf50)
  • PHP 8.3 array_sum(): Addition is not supported on type string (67881e5)
  • App: PHP 8.1 控制 namespace 和 controller 为字符串 (868942d)
  • Base: PHP 8.2 允许动态创建属性 (6c22ec7)
  • IsAnyDateTime: PHP 8.2 date_get_last_errors return false when no errors (5ac8cf0)
  • IsEqualTo: PHP 8.0 '' not equal to 0 (e698dea)
  • Logger: PHP 8.1 Deprecated: Implicit conversion from float to int loses precision (0cdfc16)
  • Memcache: PHP 8.0 Unknown named parameter $port (5d18ebf)
  • QueryBuilder: PHP 8.1 table 设置为字符串,以避免 Passing null to parameter of type string is deprecated 错误 (0eb223f)
  • Record: createCollection should only accept Record object (6029f5f)
  • Ret: PHP 8.0 BadMethodCallException: Property or method "329$139" not found (87ff581)
  • PHP 8.1 ctype_digit(): Argument of type will be interpreted as string in the future (88cbfb4)
  • PHP 8.1 Passing null to parameter of type string is deprecated (f1376e1)
  • Req: PHP 8.1 Passing null to parameter of type string is deprecated (37b5f3e)
  • PHP 8.1 Passing null to parameter of type string is deprecated (2b75121)

Features

  • 更改 offsetXxx, count, getIterator 方法返回值以兼容 PHP 8.1 (c32c90e)

BREAKING CHANGES

  • 更改 offsetXxx, count, getIterator 方法返回值以兼容 PHP 8.1

Dependencies

  • @miaoxing/dev: upgrade from 8.2.3 to 8.2.4

0.16.0 (2023-11-02)

Bug Fixes

  • QueryBuilder: where(Closure) 生成的语句参数顺序错误 (9b743a1)
  • QueryBuilder: where(Closure) 生成的语句排除默认范围查询 (4255288)

Code Refactoring

  • Http: 改为每次调用都创建一个新的对象 (94add7a)

Features

  • Http: 允许通过 url 方法初始化服务,并通过 paramsjson 等方法链式调用 (b6d6c0a)
  • Http: 允许静态调用 getpostputdeletepatch 方法 (3e16dc6)
  • Http: 增加 params 用于向 URL 增加参数 (ccc5161)
  • Http: 如果返回内容是 application/json,则自动解析返回内容为 JSON 数组,而不是返回纯文本 (49adca1)
  • Http: 支持传入 json 来发送 json 数据 (8052cd6)
  • Str: 使用自定义的 pluralize 方法,移除 doctrine/inflector 依赖 (6188a93)
  • Str: 使用自定义的 singularize 方法,移除 doctrine/inflector 依赖 (63b8335)

BREAKING CHANGES

  • Http: Http 服务移除 global 选项
  • Http: Http 服务如果返回内容是 application/json,则自动解析返回内容为 JSON 数组,而不是返回纯文本
  • Http: getpostputdeletepatch 参数更新为 ($url = null, array $options = []): self
  • Str: 使用自定义的 singularize 方法,移除 doctrine/inflector 依赖

0.15.12 (2023-09-30)

Features

  • classMap: 允许通过 [@ignored](https://github.com/ignored) 注释来忽略生成类映射表 (d60e29e)
  • QueryBuilder: updatedelete 语句支持 orderBy limit 方法 (6d5812f)

0.15.11 (2023-09-02)

Bug Fixes

  • ClassMap: 解决过滤重复类错误 (357f3cf)

Features

  • App: 增加 actionMethodFormat 选项,用于设置操作方法的格式 (5d8c2cd)
  • Ret, experimental: 增加 assert 方法,当 ret 为错误时,抛出异常 (46db6e6)
  • Schema: 增加 userId 方法,用于增加 user_id 列 (7d56599)
  • Str: 增加 cut 方法,用于截断字符串 (c78cd98)
  • TreeTrait: 模型增加 TreeTrait (bbab56b)

Dependencies

  • @miaoxing/dev: upgrade from 8.2.2 to 8.2.3

0.15.10 (2023-07-31)

Bug Fixes

  • Model: 关联数据应设置为已加载的状态 (211301c)

Features

  • QueryBuilder: 增加 exists 方法,用于判断查询是否有结果 (b0bb602)

Dependencies

  • @miaoxing/dev: upgrade from 8.2.1 to 8.2.2

0.15.9 (2023-06-30)

Features

  • BaseController, experimental: 增加 init 方法 (00fc885)

0.15.8 (2023-05-31)

Features

  • Migration: rollback 允许只回退指定的一个编号 (9e9a0b3)
  • Migration: target 允许传入大写开头的类名 (6088573)
  • Res: 增加 getHeaders 方法 (160f161)

Dependencies

  • @miaoxing/dev: upgrade from 8.2.0 to 8.2.1

0.15.7 (2023-04-30)

Features

  • Http: 增加 requestRet 方法 (dd35fab)
  • Http: 增加 toRet 方法,用于将请求结果转换为 Ret 对象 (70aa7fa)

0.15.6 (2023-04-15)

Bug Fixes

  • V: json 列允许存入数组,改用 isJson 校验 json 列 (432790f)

Features

  • Http: 增加 Http::request 方法,替代 wei()->http (da33434)
  • isJson: 增加 isJson 校验器,用于校验数据是否为数据库 JSON 数组或对象 (3363cd9)
  • Model, experimental: 增加 syncRelation 用于保存关联表的数据 (de7ec87)
  • Model, experimental: 支持自定义关联 (ba0c988)
  • Ret: 调用 err 方法时,如果 code 是成功代码,则转换为错误代码 (a926125)
  • Ret, experimental: 增加 prefix 方法,用于附加内容到信息前面 (8c81c3f)

0.15.5 (2023-03-01)

Features

  • BaseController: 增加 getMiddlewareremoveMiddleware 方法 (fa3c0b0)
  • classMap: 支持多级继承的情况 (6c152f0)
  • isModelExists: 增加 isModelExists 校验器 (ccc2b8f)
  • Model: 支持多个记录获取多对多(如 $articles->tags)的情况 (95368e9)
  • V: 增加 notModelDup 方法,简化数据库重复值校验逻辑 (7de73f5)
  • V: 增加 requiredIfNew 方法,用于校验模型新对象必须有数据 (921b187)

0.15.4 (2023-01-31)

Bug Fixes

  • PhpFileCache: 屏蔽在慢 io 或请求并发时,缓存过期,文件被删除,会出现 "failed to open stream: No such file or directory" 错误 (0e57b2d)
  • QueryBuilder: 参数传入 null 时生成 SQL 错误 (c902a97)
  • V: getModel 返回值可能为 null (69ae892)
  • V: 测试自身数据时,获取校验通过的数据错误 (79e344a)
  • Validate: 解决 Req 对象,offsetExists 会忽略 null 值,导致传入 null 时,认为 key 不存在 (4c18953)

Features

  • Model, Cast, experimental: 增加 ip 转换 (39ab6b6)
  • Snowflake: 增加 Snowflake 服务,用于生成全局唯一 ID (4cc7fed)

0.15.3 (2023-01-01)

Bug Fixes

  • Model: bool 类型存储到数据库前要转换为 int (63398ec)
  • Model: ModelTrait 类缺少引入 (b25fb3d)

Features

  • isTimestamp: 增加 isTimestamp 校验器,用于校验数据是否符合数据库 timestamp 字段 (28e844c)
  • isUnique: 增加 isUnique 校验器,用于检查数组不能包含相同的值 (b215bd0)
  • Model: Model::update 对参数进行转换 (024403b)
  • QueryBuilder: 增加 whereNot 方法 (540b629)
  • Req: 增加 getServerIp 方法 (488e8a6)
  • Req: 增加 trustedProxies 选项,允许控制是否信任代理 IP (cd575b3)
  • Schema: 增加 binaryvarBinary 方法 (a3ded88)

Dependencies

  • @miaoxing/dev: upgrade from 8.1.3 to 8.2.0

0.15.2 (2022-12-01)

Bug Fixes

  • isLength: 解决 null 值提示长度未识别 (3ead9b6)
  • Model: fromArray 包含虚拟字段触发 Invalid virtual column: 错误 (f38dc31)

Features

  • Model: getColumns 方法增加返回 title (00dab8d)
  • Model: getColumns 方法增加返回 typeunsignedlengthscale (53a5992)
  • Model, Cast: decimal 字段,如果传入空值,自动转换为 0 (0e29613)
  • Schema: 增加 dropSoftDeletable 方法 (d8e9b94)
  • Str: 增加 truncate 方法 (2492499)
  • V: modelColumn 名称留空时,从数据库表读取名称 (97243d6)
  • V: 支持指定数据表字段生成校验规则 (77f74eb)

0.15.1 (2022-11-01)

Bug Fixes

  • V: key0 时被识别为校验所有数据 (66cd782)

Features

  • isImageUrl: 增加错误信息的中文翻译 (a67ca6d)
  • isObject, experimental: 增加长度校验 (e21c008)
  • isTrue: 增加 isTrue 校验器,用于校验值是否为真,如选中单选框,同意协议 (1f4ae10)

0.15.0 (2022-09-30)

Bug Fixes

  • idCard: 简化身份证校验错误的信息 (824c9b7)
  • idCardCn: 不再支持已经停用的 15 位身份证号 (f2a8373)

Code Refactoring

  • env: 移除通过 ifconfig 获取本机 ip 的功能 (a05d019)

Features

  • Db: 支持跨数据库操作 (f0e7cd4)
  • isAllow: 增加 isAllow 规则,用于遇到指定值则跳过剩下的规则 (f2da440)
  • isAllowEmpty, experimental: 通过校验器类型自动识别允许的空值 (2b8f9e3)
  • isCallback: 回调允许返回字符串表示错误信息 (59dabd7)
  • isEmpty, experimental: 通过校验器类型自动识别允许的空值 (dd99ebf)
  • isIdCardCn: 增加长度错误提示 (7c778cd)
  • isImageUrl: 增加 isImageUrl 校验器,用于检查字符串(如用户上传的文件)是否为图片地址 (9082fe7)
  • isInConst: 增加 isInConst 校验器,用于校验值在指定类的常量中 (3fcddcc)
  • Model: 支持模型表包含数据库 (db57ed4)
  • V: 如果设置了 notEmpty 规则,优先校验 (5864e45)
  • V, experimental: 增加 defaultNotEmpty 功能 (d7a4953)

BREAKING CHANGES

  • isEmpty, experimental: false 和空数组 [] 默认不再认为是空值
  • env: 移除通过 ifconfig 获取本机 ip 的功能
  • idCard: 移除旧的身份证校验错误的翻译信息,增加新的翻译信息
  • idCardCn: 不再支持已经停用的 15 位身份证号

0.14.0 (2022-09-03)

Bug Fixes

  • DbCache: 指定表前缀时出错 (e0a294f)

Code Refactoring

  • apc: 移除失效的 apc 缓存 (e178b00)
  • bicache: 主缓存默认缓存由 apc 改为 apcu (2e74df0)
  • cache: 默认缓存由 apc 改为 phpFileCache (fbd12fc)

Features

  • apcu: 增加 apcu 缓存服务 (6ccf765)
  • db: 增加 setTablePrefix 方法 (04f50eb)
  • QueryBuilder: 增加 orderByRaw 方法 (f6a4c54)

BREAKING CHANGES

  • bicache: bicache 主缓存默认缓存由 apc 改为 apcu
  • cache: 默认缓存由 apc 改为 phpFileCache
  • apc: 移除失效的 apc 缓存
  • QueryBuilder: QueryBuilder::orderBy 第一个参数移除类型,允许传入 Raw 对象

0.13.0 (2022-08-02)

Bug Fixes

  • IsEach: each 方法传入 V 对象报错 (0b8eb58)

Code Refactoring

  • Cls: 移动 Strwei 中 (fedea6a)

Features

  • Cls: 增加 cls 服务,用于处理类相关功能 (5c8389e)
  • Model: 移动模型基类到 wei 中 (5c532ca)
  • QueryBuilder: 移动 QueryBuilderwei 中 (d7a3826)
  • Ret, experimental: 增加 RetException (52b4de3)
  • Str: 移动 Strwei 中 (6897b4d)
  • V: 增加 assert 方法,校验成功返回校验过的数据,失败抛出异常 (1037684)
  • V: 支持通过任意校验器初始化键名校验,重写 V 服务 (b6e2236)
  • V, experimental: 增加 self 方法,用于校验整个数据,而非数据中的某一项 (1bed1f4)
  • Validator, experimental: 移除 BASIC_TYPE 常量 (c015f0a)

BREAKING CHANGES

  • Cls: 移动 Strwei
  • V: V 服务不再支持串联校验,以便支持通过任意校验器初始化键名校验

Dependencies

  • @miaoxing/dev: upgrade from 8.1.2 to 8.1.3

0.12.6 (2022-07-02)

Bug Fixes

  • 解决 composer 2.2+ 默认不启用插件导致安装路径错误 ()

0.12.5 (2022-07-01)

Features

  • NearCache: 增加 getFrontgetBack 方法 (07d73fe)

Dependencies

  • @miaoxing/dev: upgrade from 8.1.1 to 8.1.2

0.12.4 (2022-06-01)

Bug Fixes

  • Req: 请求方式为 POST 才可以通过 _method 参数来更改请求方式 (b5d0e91)

Performance Improvements

  • Req: 优化判断是否为 ajax 的逻辑 (948d4da)
  • Req: 优化获取请求方式的逻辑 (3162ae7)

Dependencies

  • @miaoxing/dev: upgrade from 8.1.0 to 8.1.1

0.12.3 (2022-04-30)

Bug Fixes

  • Schema: 解决 rename 表名缺少前缀 (edfa09d)

Features

  • Ret: 允许 Ret 对象转换为字符串 (2e67678)

0.12.2 (2022-03-31)

Features

  • Schema: drop, dropIfExists 支持支持一次删除多个表名 (5429a99)

0.12.1 (2022-02-28)

Bug Fixes

  • Upload: 创建目录使用默认的 0755 权限,解决 PHP 写入文件 nginx 不可读的问题 (6f86418)

Features

  • service, experimental: 更改 instance 为静态方法 (127b91e)
  • Upload: save 方法返回值增加 nametypesize (b21604a)
  • Upload: 增加 path 属性,用于指定上传文件的完整路径 (6842a8b)
  • Upload: 增加 save 方法 (7221d33)
  • Upload: 增加默认名称 file 的中文翻译 (63703ca)

0.12.0 (2022-02-05)

Bug Fixes

  • Cache: 缓存无数据返回值由 false 改为 null (b46ad12)
  • Redis: 解决存储整数读取出来为字符串 (00ddc90)

Code Refactoring

  • Cache: 移除 getResultCode 方法,该方法是 memcached 特有的 (5a6da73)
  • Cache: 移除过时的 Couchbase 服务 (2eaa354)
  • Cache: 移除通过 get 设置缓存的功能,改用 remember (37fd419)
  • Memcached: getMulti 改为直接调用 getMultiple (9039f6b)

Features

  • Cache: 允许静态调用缓存方法 (d5eb300)
  • Cache: 增加 hasdeletegetMultiplesetMultiple 方法,废弃 existsremovegetMultiplesetMultiple 方法 (3bf9df0)
  • Cache: 增加 isHit 方法用于判断 getgetMultiple 获取的缓存是否存在 (25ddb69)
  • Cache: 增加 remember 方法,用于缓存回调生成的数据 (8493b4f)
  • Cache: 缓存驱动增加 isHit 支持 (8c05617)
  • Cache: 默认值支持通过闭包生成 (e285407)
  • Db: 允许静态调用 Db::transactional 方法 (15e90f2)
  • Env: 允许静态调用 Env::is* 方法 (2897cd1)
  • Memcached: getMultiple 支持 isHit 判断缓存是否存在 (fe90ee6)
  • NullCache: 增加 NullCache 服务 (b0ddc66)
  • Redis: getMultiple 支持 isHit 判断缓存是否存在 (f4f7f75)
  • Redis: setMultiple 方法改为调用 mset,支持一次性设置 (eb8ab65)
  • service: 增加 instance 方法来获取当前类对应的服务对象 (debc3f3)
  • TagCache: 支持 getMultiplesetMultipleisHit 方法 (6a007c9)
  • wei: 增加 getBy 方法,用于传入类名,获取对应的服务 (26b4632)
  • Wei: 增加 removeConfig 方法 (84137c7)

BREAKING CHANGES

  • Memcached: Memcached 服务移除 isMemcached3 属性
  • Cache: 移除 getResultCode 方法,该方法是 memcached 特有的
  • Cache: 移除通过 get 设置缓存的功能,改用 remember
  • Cache: 移除过时的 Couchbase 服务
  • Cache: 缓存无数据返回值由 false 改为 null
  • Redis: 解决存储整数读取出来为字符串
    • 原来存入的字符串数字会被读取为整形或浮点数
    • 新存入的数据,如果需要调用 in/decrement,需使用整形,不可使用字符串

Dependencies

  • @miaoxing/dev: upgrade from 8.0.1 to 8.1.0

0.11.1 (2022-01-12)

Bug Fixes

  • wei, Error: 解决错误时,使用 response 对象发送响应缺少 header 的问题 (d4fe44d)

Dependencies

  • @miaoxing/dev: upgrade from 8.0.0 to 8.0.1

0.11.0 (2021-10-28)

Bug Fixes

  • Db: 不缓存 dsn,每次应实时生成 (33a525a)
  • Migration: migrations 为空时处理错误 (b1bef9a)
  • Migration: 构造函数的参数允许为空数组 (b2d6239)
  • wei: 子类通过 static:: 调用父类私有常量会出错 (19ec9f2)

Code Refactoring

  • Redis: 去除内置的SERIALIZER_PHP,改用 Laravel 的 serialize 逻辑 (1b296fa)
  • Wei: 配置分隔符改用 .,服务名称分隔符改用 : (f0c921b)

Features

  • db: 增加 rawgetRawValueisRaw 方法来生成和处理原生 SQL 值 (899e8f9)
  • Migration: 增加 reset 方法,用于回滚所有的迁移脚本 (b292617)
  • Req: 允许通过 HTTP_X_HTTP_METHOD_OVERRIDE 标头来覆盖请求方法 (320f03d)
  • Req: 增加 getHeaderhasHeader 方法 (aa4dce0)
  • Req: 增加 isPreflight 方法 (ae4a261)
  • Ret: 增加 withdata 方法用于附加数据 (6160708)
  • Ret: 增加 getter 和 setter,用于获取 codemessagedata 和自定义数据 (e93ddbe)
  • Ret, experimental: 增加 includeincludeWith 方法,用于通过 URL 指定参数来附加数据 (a349eff)
  • Ret, experimental: 增加 transform 方法,用于转换 data (d225bb2)
  • Schema: 增加 hasDatabasecreateDatabasedropDatabase 方法 (686e5fc)
  • Schema: 增加 userIdType 属性和方法,用于自定义用户编号字段的类型 (0614a46)
  • Validator: 增加 check 方法,用于检查后返回一个 Ret 对象 (5aa45d2)

BREAKING CHANGES

  • Redis: Redis 服务去除内置的SERIALIZER_PHP,改用 Laravel 的 serialize 逻辑
  • Wei: 配置分隔符改用 .,服务名称分隔符改用 :
  • db: 移除通过 (objet) 生成原生 SQL 值,改为通过 raw 方法生成

Dependencies

  • @miaoxing/dev: upgrade from 7.0.1 to 8.0.0

0.10.11 (2021-05-21)

Bug Fixes

  • Validator: 幂计算符号错误,整数溢出变浮点数 (dcb6980)

0.10.10 (2021-05-12)

Dependencies

  • @miaoxing/dev: upgrade from 7.0.0 to 7.0.1

0.10.9 (2021-05-11)

Features

  • wei: 增加 psr-4 自动加载 (cb11217)

Dependencies

  • @miaoxing/dev: upgrade from 6.4.0 to 7.0.0

0.10.8 (2021-04-27)

Features

  • IsObject: 增加 IsObject 校验规则 (08c36e8)

Dependencies

  • @miaoxing/dev: upgrade from 6.3.4 to 6.4.0

0.10.7 (2021-03-22)

Dependencies

  • @miaoxing/dev: upgrade from 6.3.3 to 6.3.4

0.10.6 (2021-03-12)

Dependencies

  • @miaoxing/dev: upgrade from 6.3.2 to 6.3.3

0.10.5 (2021-03-10)

Dependencies

  • @miaoxing/dev: upgrade from 6.3.1 to 6.3.2

0.10.4 (2021-03-09)

Dependencies

  • @miaoxing/dev: upgrade from 6.3.0 to 6.3.1

0.10.3 (2021-03-09)

Dependencies

  • @miaoxing/dev: upgrade from 6.2.0 to 6.3.0

0.10.2 (2021-03-05)

Bug Fixes

  • PHP 7.4 Trying to access array offset on value of type float|null|bool 错误 (3301cbe)

0.10.1 (2021-03-05)

Dependencies

  • @miaoxing/dev: upgrade from 6.1.2 to 6.2.0

0.10.0 (2021-03-05)

Bug Fixes

  • Between: 解决参数传入 0 时校验错误 (2844408)
  • FileCache: 忽略慢 io(docker)和请求并发导致同时调用删除文件时错误 (25ab8b4)
  • IsEach: 每次校验时都要创建一个新的 V 对象,以便对每个数组项目自定义规则 (6a47768)
  • IsTinyChar: 增加 IsTinyChar 校验规则 (4178fc9)
  • Logger: 输出日志内容由 print_r 改为 json_encode, 解决复杂变量可能导致内存溢出的问题 (efded05)
  • Req: 调用 clear 后再调用 getData 可能出现 Undefined array key "xxx" 的错误 (d50987e)
  • V: 校验规则传入关联数组作为选项无效 (b62cd31)
  • Validate: hasField 判断数据错误 (298a614)
  • Validate: data 传入闭包抛出 Error : Closure object cannot have properties (d6d6989)
  • Validate: PHP8 method_exists 需传入对象或类名字符串 (174ca14), closes #1
  • Validator: 指定 subValidators 的默认值为数组 (1094631)
  • Validator: 指定了 countByChars 选项后,如果校验的值不是字符串值,则返回失败 (31980b3)
  • 更正生成 Migration 的基类的命名空间 (b124bfa)

Features

  • IsArray: 增加 minLength, maxLength 选项 (c6dc44c)
  • IsCallback: 增加 getValidator 方法,可用于回调中获取当前校验器的信息 (c3718cb)
  • IsEach: each 校验器支持获取当前校验数据和键名 (182852e)
  • IsEach: 增加 IsEach 校验规则,用于校验二维数组 (8dc17e7)
  • IsEmpty: 增加 IsEmpty 校验规则 (88dd648)
  • IsInt: 增加 min, max 选项 (04ab90f)
  • IsString: 增加 minLengthmaxLength 选项 (962ace0)
  • IsText, IsMediumText: 增加 IsTextIsMediumText 校验规则 (6c6e1da)
  • Schema: 增加 bigId() 方法,用于生成 bigint 类型的自增 id (0036247)
  • Schema: 增加 json 类型 (2ec9326)
  • V: 允许使用基础类型(如 string)来创建一行新的数据校验 (b46b327)
  • V: 增加 allowEmpty 方法,允许字段为空值时不校验 (245c048)
  • V: 增加 new 方法,用于返回新的校验器实例 (f813b71)
  • V: 增加 defaultRequired 选项,用于控制所有数据是默认必填还是选填 (de4aed7)
  • V: 增加 getOptions 方法,返回用于 Validate 服务的配置 (f3e33d3)
  • Validate: 增加 getCurrentRule 方法 (6406806)
  • Validate: 增加 getFlatMessages 方法,用于获取一维数组的错误信息 (023b60b)
  • Validator: Number 增加总长度和小数长度选项 (22e32eb)
  • Validator: 增加 IsTiny, IsSmallInt, IsMediumInt, IsDefaultInt, IsBigInt,IsUTiny, IsUSmallInt, IsUMediumInt, IsUDefaultIntIsUBigInt (3562913)
  • Validator: 增加 ArrayVal 规则,用于校验数据是否为数组 (981069a)
  • Validator: 增加 BoolVal 和 Boolable 规则,用于校验数据是否为布尔值 (23ba996)
  • Validator: 增加 Children 规则,用于校验多级数组 (9c39028)
  • Validator: 增加 FloatVal 规则,用于校验数据是否为浮点数值 (1f735e7)
  • Validator: 增加 IntVal 规则,用于校验数据是否为整数值 (31ab9ce)
  • Validator: 增加 MaxAccuracy 规则,用于校验数字的最大小数位数 (526f67f)
  • Validator: 增加 MinCharLength 和 MaxCharLength 规则 (438d97d)
  • Validator: 增加 StringVal 规则 (8c6a120)
  • Validator: 增加 UNumber 表示大于 0 的Number (0857e5e)
  • Validator: 增加大小判断规则的简写:Gt、Gte、Lt 和 Lte (a0d68e7)
  • Validator: 增加方法以获取校验通过的数据 (47d985c)
  • Validator: 校验的键名可以传入数组,表示校验相应数据路径的数据 (bac0a23)
  • 增加 getCurrentField 和 hasField 方法 (e1e5169)
  • 为数值类型增加 u 开头的方法来表示无符号,例如 uIntuDecimal,移除 autoUnsigned 选项,改为明确指定是否有符号 (f964fc1)

Code Refactoring

  • IsChar: 更改 IsCharLengthIsChar (41853b4)
  • Schema: 移除废弃的 timestampsV1, userstampsV1softDeletableV1 方法,直接使用 timestamps, userstampssoftDeletable (0202591)
  • Validator: 基础类型校验器移除 Val 后缀 (1a49d63)
  • Validator: 校验规则类移除 Validator 命名空间,增加 Is 前缀 (eb8a2ef)
  • Schema: date, datetime, timestamp 类型的默认值改为 NULL,匹配 MySQL 5.7+ 的默认模式 (659e6d4)
  • IsDateTime: IsDateTime 改名为 IsAnyDateTime,增加 IsDateTime 校验格式为 Y-m-d H:i:s 的日期 (d7d4ccb)

BREAKING CHANGES

  • IsEach: V::getValidator 方法移除 $data 参数 IsEach::getValidatorOptions 方法增加 $data 参数
  • 为数值类型增加 u 开头的方法来表示无符号,例如 uIntuDecimal,移除 autoUnsigned 选项,改为明确指定是否有符号
  • Schema: date, datetime, timestamp 类型的默认值改为 NULL,匹配 MySQL 5.7+ 的默认模式
  • IsDateTime 改名为 IsAnyDateTime,增加 IsDateTime 校验格式为 Y-m-d H:i:s 的日期
  • Schema: 移除废弃的 timestampsV1, userstampsV1softDeletableV1 方法,直接使用 timestamps, userstampssoftDeletable
  • V: 基础类型不再可以作为方法附加到已有的校验中,需直接调用 addRule($type)
  • IsChar: 更改 IsCharLengthIsChar
  • Validator: 基础类型校验器移除 Val 后缀
  • Validator: 校验规则类移除 Validator 命名空间,增加 Is 前缀
  • Validator: Number 规则传入 NAN 将返回 false
  • 校验数组或对象数据时,如果数据中包含要校验的键名,则认为值是存在的

0.9.31 (2020-09-25)

Bug Fixes

  • V: 链接验证服务每次调用都应创建新的对象 (1129420)

Features

  • Pinyin: 获取拼音可以设置分隔符 (1a35a7b)

Dependencies

  • @miaoxing/dev: upgrade from 6.1.1 to 6.1.2

0.9.30 (2020-08-17)

Dependencies

  • @miaoxing/dev: upgrade from 6.1.0 to 6.1.1

0.9.29 (2020-08-14)

Dependencies

  • @miaoxing/dev: upgrade from 6.0.0 to 6.1.0

0.9.28 (2020-08-14)

Dependencies

  • @miaoxing/dev: upgrade from to 0.1.0

0.9.27 (2020-08-07)

Bug Fixes

  • error: 增加处理 Throwable 错误 (6d59a86)

0.9.26 (2020-08-06)

Features

  • 增加 Req, Res 服务,废弃原来的 Request,Response (1a6a7c3)

0.9.25 (2020-08-01)

Features

  • Share 服务加入 wei 中 (c881063)

Reverts

  • "test: 设置 driver 后还原" (93be887)

0.9.24 (2020-07-23)

Bug Fixes

  • schema nullable 设置无效 (fb6781b)
  • 命名空间不正确 (0a5f57a)
  • 改用 rawurlencode 来转换 cookie (3f1070c)
  • 非数字值 incr 出错 ErrorException : A non-numeric value encountered (a91ee96)
  • Request: 解决 &offsetGet 导致 if (wei()->request['notExists']) 会在 request 内部的 data 产生额外键 notExists = null 的问题

Features

  • ClassMap 加入 wei 中 (cea4791)
  • Migration 加入 wei 中 (aab0acb)
  • Request 可以读取到提交的 JSON 数据 (0cefe24)
  • Request 增加 isFormat 判断请求格式 (5b8b57e)
  • ServiceTrait 加入 wei 中 (6106fd9)
  • Time 服务加入 wei 中 (26088e3)
  • V 服务加入 wei 中 (ed8332e)
  • error: 支持返回 JSON 结果 (6be31d3)
  • error: 获取错误信息时,尝试将异常错误码转换为 HTTP 状态文本;错误视图可以使用 $title, $message 参数 (3d0ff81)
  • upload: 增加 getUrl 方法,返回上传文件的地址 (7638e8c)
  • batchInsert 也自动转换 false 值为 0 (f7ebe4d)
  • schema 增加 defaultNullable 选项,控制是否默认为 null (4a10c4b)
  • 初步增加静态调用 (756003f)
  • 动态调用也支持指定 $createNewInstance=true 来创建新的对象 (540c902)
  • 增加 dropIndex 支持 (53a052c)
  • 增加 to 方法 (7b84508)
  • 支持使用 URL 参数 r 作为路由 (7de4f06)
  • 自动转换 false 值为 0,避免 MySQL 默认的 sql mode "STRICT_TRANS_TABLES" 提示"Incorrect integer value: '' for column ..." (ef91135)
  • Block: 增加 js,css 快捷方法
  • isCallback: 回调函数除了闭包, 还允许传入字符串,数字
  • Record: reload, saveColl 方法使用 $this->primaryKey 代替 id 字符串
  • Db: 废弃 insertBatch 方法,改名为 batchInsert
  • Wei: 移除 PHP 5.3 的支持,要求 PHP 7.2+

0.9.23 (2017-03-20)

  • Schema: 增加MySQL表操作服务,支持创建修改数据表,字段等
  • Lock: 增加expire选项,默认为30秒,用于避免PHP出错后没有解锁导致死锁
  • Db: 增加transactional方法,通过回调的方式调用事务
  • Record: 增加forUpdate,forShare,lock方法用于事务中的锁
  • Db: insertBatch增加extra参数,可用于在生成的语句后面增加"ON DUPLICATE KEY UPDATE"字句
  • Http: 网络请求失败时,抛出的异常code加2000(如404则异常code为2404),避免被error服务认为是当前页面404
  • App: 自定义控制器格式中的命名空间,要求大写形式

0.9.22 (2016-11-22)

  • StatsD: 增加StatsD服务,用于发送统计数据到https://github.com/etsy/statsd
  • NearCache: 增加NearCache服务,可用于缓存远程数据到本地缓存中,减少远程调用
  • Memcached: 兼容memcached 3.0 getMulti方法只支持两个参数的情况
  • Env: 允许通过本地的.env.php返回值获取环境名称
  • Error: 增加autoExit选项,在命令行下运行失败时,会调用exit返回错误码,以便外部程序判断运行结果
  • Record: 修复page传入过大值后,offset溢出变负数的问题 #184

0.9.21 (2016-08-04)

  • App: 允许controllerFormat为空,使getControllerClasses方法返回正确的类名
  • App: 增加setControllerFormat方法
  • Event: 增加loadEvent回调,可用于加载或按需绑定事件
  • Event: 增加getCurName方法,获取当前事件名称
  • Env: 增加loadConfigDir方法,用于加载目录下的配置文件
  • Redis: 解决使用redis扩展2.2.8,set方法传expire为0时,key会马上失效的问题
  • View: 增加parseResource回调,可用于外部解析自定义视图路径
  • Ret: 增加Ret服务和trait,用于统一构造操作结果,如操作成功/失败
  • Asset: 增加fallback方法,用于生成当CDN加载失败时,回退到本地的素材地址
  • BaseController: middleware方法改为public,允许外部(如通过事件)设置middleware
  • WeChatApp: 初步增加转发多客服功能
  • Record: 修复record有默认数据时,filter返回数据和默认数据混淆在一起的问题
  • Session: start方法支持session关闭后重新启动
  • Request: setServer,setQuery,setPost支持数组参数
  • Request: 增加getReferer快捷方法
  • Request: 修复HTTPS端口错误
  • Logger: 记录日志时,$context参数允许非数组
  • WeChatApp: 增加加密支持
  • Http: 增加文件上传支持
  • Router: 修复设置单复数转换无效
  • IsStartsWith,IsEndsWith: 修复查找的对象是多个时,生成的正则不正确
  • Cache: 设置缓存失败时,不抛出异常,以免程序中止.设置失败时,需由set处理或调用方处理
  • Record: update方法增加数组参数支持
  • Record: 查询时如果没有设置FROM的数据表,使用当前数据表作为FROM的数据表
  • Bicache: 修复命名空间重复,因为master,slave已有命名空间
  • Record: 修复新对象中,toArray指定了字段却没有返回的问题
  • Record: 修复PostgreSQL不允许int id传入字符串导致测试错误
  • Record: SQL缓存key加上数据库名称,避免分/多库存在相同查询导致key冲突
  • Wei: 移除自动注入namespace功能,原因一是目前只有cache,session,app会用到,二是不便于namespace共享和切换
  • Router: 路由解析出的参数都转换为驼峰形式
  • Logger: 增加formatParams方法,方便子类调用
  • Http: getCurlInfo增加option参数
  • App: middleware支持返回字符串或数组,与action行为类似
  • Http: 增加重试支持
  • Http: 修复http服务未返回数组时,调用offsetExists出现array_key_exists() expects parameter 2 to be array, null given的问题
  • Error: 增加简单的cli错误视图
  • Record: 修复indexBy重复调用出错

0.9.20 (2015-06-18)

  • Event: 移除$wei作为事件的首个参数 #183
  • Event: 增加until方法,当获取到首个非null返回就停止执行剩下的事件 #183

0.9.19 (2015-05-25)

  • Record: setData可以传入数组或ArrayAccess refs 39588ce285624ffca23138a6b9aacf1ce3810fcc
  • Env: env支持多个服务器都设置为相同的环境名称 refs e96e7ff63919c80425d5b7733a5468f74f107cf0
  • TagCache: 增加标签缓存服务 #180
  • Record: 增加缓存和标签缓存支持,增加了cache, tags, setCacheKey, clearTagCache等缓存方法 #180
  • Event: 增加事件功能 #181

0.9.18 (2015-04-09)

  • App: action的命名改为以Action结尾,以便不和关键字new, default,list冲突 refs be6f6f1
  • App: forward方法支持设置请求参数 refs 681f475
  • App: 修复dispatch接收到forward通知后,未返回response的问题 refs 96721a8
  • App: 控制器增加before和after方法 refs fed3425
  • Router: 修复路由解析出的控制器缺少根控制器的问题 refs 5940754
  • Cache: 增加getResultCode,用于缓存失败时,展示错误码 refs 98399d5
  • Block: 增加block服务,用于视图模板继承 refs decae8d
  • Db: 增加useDb,用来切换数据库 refs 42dd43f
  • View: 修复在view中再次调用render方法会导致布局渲染错误的问题 refs 08719ee
  • Record: 增加fillable和guarded,默认除了id,其他字段都可以接收外部数据(感谢Laravel) refs aa37be6
  • Record: 移除通过属性设置回调的功能 refs a6cec67
  • Record: 开放setData方法,允许设置任意字段的数据,不受fillable和guarded影响 refs cf6dd98

0.9.17 (2015-03-27)

  • Request: 修复当URL地址包含端口时,getHost返回值错误, refs b5478fc
  • Url: 修复生成查询地址错误, refs d7cd2aa
  • Request: 控制返回的HTTP方法为大写, refs b70df92
  • Test: 升级PHPUnit到4.5, refs e124661
  • Router: 重构路由器服务,支持解析Path info为多组controller和action参数 #178
  • App: 重构应用服务,支持传入多组controller和action参数,并查找存在的一组作为当前应用运行 #178
  • Middleware: App服务支持中间件,可以用来控制用户登录,限制IP,CSRF保护等 #178
  • 更新演示代码, refs 16fc1ab

0.9.16 (2015-01-29)

  • Logger: Changed property "name" to "namespace", refs f1ac3e0
  • Cache: Changed property "prefix" to "namespace", refs 1d38b8d
  • Wei: Changed property "name" to "namespace", and injects namespace to services when instanced, refs 41c7b24
  • App: Added namespace property, refs 487cc9b
  • Url: Added append method to generate URL without base URL, refs c7ce111
  • Request: Added acceptJson method and overwriteFormat property to detect JSON request, refs b01182c
  • View: Uses property instead of local variables to avoid variables overwriting, refs ce37fdf
  • View: Throws 500 exception instead of 404 when template not found, refs b80f222
  • IsMobileCn: Allows Chinese mobile number starts with 17, refs 0a1217d
  • Url: Added sprintf support for URL generating, refs ac60d9f
  • PhpFileCache: added PhpFileCache service, refs 082275b

0.9.15 (2014-12-07)

  • Router: Drop REST router support, refs 56da468
  • Request: Added getQueries method, refs 82ac19f
  • Wei: Added setServices method, fixed preload services missing issue, refs 584b3b1
  • Record: Removed order by in count sql, refs 09798cf
  • Record: Speed up count query, refs 83630b9
  • Ua: Added isWeChat method to check if in WeChat app, refs 699995f
  • Record: Fixed indexBy error when fetched data is empty, refs 0fc9b37
  • Record: Added conditions parameter for fetch and fetchAll methods, refs c5fb556
  • Record: Added parameter for SQL COUNT function argument, refs 08302b8
  • Lock: Releases locks and exist when catch signal in CLI, refs ab4fb34
  • WeChatApp: Removed 'qrscene_' prefix in getScanSceneId method, refs e56ae98
  • Asset: Added array parameter support for __invoke method, refs 39870ed
  • Soap: Added soap service works like http service, refs 81798a6
  • Log: Allows to log exception as message, refs ab2d33f
  • WeChatApp: Returns empty string if no rule is handled, http://mp.weixin.qq.com/wiki/index.php?title=%E5%8F%91%E9%80%81%E8%A2%AB%E5%8A%A8%E5%93%8D%E5%BA%94%E6%B6%88%E6%81%AF , refs ab2d33f
  • App: Force response content to be array, refs 6b54527
  • Session: Added namespace support, refs 21da6ed
  • Session, Cookie, Request: Fixed the error "Indirect modification of overloaded element of Wei\Session has no effect" caused by set session on non exist key, refs a6f665b
  • View: Added empty view directory support, refs 506fa3d
  • Asset: Allows empty base url for concatenate files, refs 89899f2
  • Record: Ignores default data in saveColl, refs 14223e7
  • Url: Added query method for url service to generate url with current query parameters, refs e4139d4
  • App: Added getControllerAction, refs 84f89bb
  • Wei: Allows non \Wei\Base object as service, refs a0f5640
  • Record: Added fetchColumn method, refs 49dde48
  • Record: Added countBySubQuery method for record service, refs bb5e189
  • Record: Fixed undefined offset 0 when fetch empty data, refs 616bb9c

0.9.14 (2014-03-24)

  • Use full dir in file cache service
  • Added addRecordClass method for db service
  • Fixed weChatApp service getKeyword method return false when event key is "CLICK"
  • Added name property for service container

0.9.13 (2014-03-16)

  • Added $returnFields parameters for toJson method
  • Fixed saveColl error when record id conflict with array key
  • Added setQuery, setPost methods for request service
  • Removes session namespace options
  • Fixed WeChat sort bug
  • Added getTicket, getKeyword, getScanSceneId methods for weChatApp service
  • Added scan and subscribe support for weChatApp service

0.9.12 (2014-02-13)

  • Add "detach" support for record class, refs #164
  • Add setAll and setAll method for record class, refs #168

0.9.11 (2014-02-05)

  • Added safeUrl service, close #171
  • Added defaultLayout property for view service
  • Added postJson method for http service, close #172

0.9.10 (2014-01-27)

  • Renamed "call" service to "http", refs #157
  • Removed default value for HTTP service content type
  • Install apcu for PHP 5.5 unit test, refs #161
  • Allows ArrayAccess as record class findOrInit method parameter
  • Ignores record class query condition when condition is false
  • Returns current record object instead of true/false in save, destroy method
  • Added isColl method for record class
  • Added findById, findOneById, findOrInitById methods for record class, refs #166
  • Added size method for recrod calss
  • Added concat method for asset service
  • Fixed missing default data when fetching non exists record
  • Removes destroy recrod from collection list, refs 14fea8b
  • Added sort support for record class saveColl method, refs be96a40
  • Fixed saveColl variable name error, refs 4024d8b
  • Drops PHP 5.3.3 support, requires at least 5.3.4, refs 05e4416e4239568ae5856783f269ca48c869aafb
  • Added JSON_UNESCAPED_UNICODE support for json response, refs 68bae3eb3797e4514ffee9d66b5a167cf6eb123b
  • Added afterFind callback for record , refs classb37d5040eec3601abddf25c6246fee0731473fde
  • Added isLoaded method for record class, refs 2ff3790a90d475aefc191dd73fb25d0693af0f48

0.9.9 (2014-01-08)

  • Do not output libxml error messages to screen in weChatApp service, refs #153

0.9.9-RC (2014-01-05)

  • Added fullTable property for record class
  • Fixed db test error when table name contains alias
  • Merged error view file into error service
  • Moved unit tests to tests/unit directory
  • Added condition parameter for record class destroy method
  • Added version parameter for asset service
  • Renamed escape service to "e"
  • Throws exception when autoload directory not found
  • Decouple response service with escape service
  • Simplified url service to generate url without router service
  • Added array access for view service
  • Added getMap method for config service
  • Renamed view service vars property to data
  • Append logger context to log message
  • Added http service, which is an alias of call service
  • Throws InvalidArgumentException when password service salt option is too short
  • Fixed record class findOrInit method returns error isNew flag when record not found
  • Fixed test error when primary key is null
  • Added saveColl method for record class
  • Added support for collection record to auto increment array key when key is null
  • Fixed primary key not receive when primary key value is null
  • Removed max-age in call service responded cookie
  • Automatic decode call service responded cookie value
  • Added getPostData method for weChatApp service
  • Removed call service setRequestHeader method
  • Removes call service deleted cookie, ref #155
  • Added getPdo method for db service
  • Uses full table name as db service tableFields key
  • Added getTablePrefix method for db service, close #154
  • Renamed db service create method to init
  • Added real time indexBy support for record class, refs #158
  • Added isContains validator, refs #149
  • Allows url service url parameter be empty
  • Added batch insert for SQLite before 3.7.11, closes #159
  • Added HHVM test env and fixed some unit test error in HHVM, refs #153
  • Updated phpunit version for HHVM test, refs #153
  • Fixed HHVM test error "Too many arguments for pi()", refs #153
  • Fixed HHVM memcache extension test error: "Unable to handle compressed values yet", refs #153
  • Fixed HHVM APC incr method test error, refs #153
  • Changed memcache service flag option default to 0, for zlib is not installed conditions parameter for record class by default
  • Added conditions parameter for record class count method
  • Removed runInSeparateProcess annotation for session test
  • Uses fileCache as default cache driver, make sure it available for all unit tests
  • Simplified isDateTime validator, fixed isDateTime test error in HHVM, refs #153, closes #160

0.9.8 (2013-12-10)

  • Added PSR-4 autoload suppoort
  • Moved all classes to lib directory, use PSR-4 to load classes
  • Simplified setAutoloadMap method
  • Enhances env service loadConfigFile method, allows to pass the file format to load config file
  • Added $data parameter for record class save method
  • Marks widget functnion as deprecated and will remove in 0.9.9

0.9.8-RC1 (2013-12-06)

  • Simplified isRecordExists validator logic
  • Renamed namespace to Wei
  • Merged json service into response service
  • Renamed record class __get and __set methods to get and set
  • Added lock service
  • Added counter serviced, with incr, decr, get, set & exists methods
  • Added foreach support for record query builder
  • Added request and response service as parameters for application action method
  • Added desc and asc methods for query builder
  • Fixed primary key value error when primary key value is set
  • Renamed cache service "keyPrefix" option to "prefix"
  • Simplified all cache services, removed all "doXXX" methods
  • Added example for logger service to ouput in browser
  • Removed %channel% from default log format
  • Fixed startWith and endsWith validators test error when "findMe" option is array and contains special regular expression characters
  • Added original error message for mkdir error
  • Removed arr service
  • Added IteratorAggregate support for record class
  • Added countable for record class
  • Merged query builder, collection class into record class
  • Updated record class to returns false when no data found for find method
  • Added toArray support for collection record
  • Removed getDb method in record class, receive db service on demand
  • Added findOne method for record class, when record not found, findOne method throw a 404 exception
  • Renamed getLastSql to getLastQuery, be consistent with getQueries
  • Speed up findOrCreate method, created only one record object
  • Added PHP memory cache for table field names
  • Added isPositiveInteger validator
  • Added isNaturalNumber validator
  • Renamed db service findOrCreate method to findOrInit
  • Added setMessage for callback validator
  • Fixed arrayCache service remove method always return true issue
  • Fixed mongoCache service remove non-exits cache return true issue
  • Removed monolog service
  • Added isDestroyed method for record class
  • Added setBaseUrl & getBaseUrl methods for asset service
  • Added isPage for request service
  • Added magic set method for service container
  • Added getServices method for service container
  • Check if record is destroy before save
  • Uses "info" level for normal HTTP exceptions
  • Make sure app service action method must not starts with "_" and case sensitive
  • Make sure app service handleResponse return a response service
  • Renamed env service "env" option to "name"
  • Renamed env service "configDir" option to "configFile"
  • Renamed env service "envMap" option to "ipMap"
  • Added exception for cache service when provided a invalid expire time
  • Renamed app service namespace option to controllerFormat
  • Merged redirect into response service

0.9.7 (2013-10-31)

  • Added field parameter for record class getModifiedData to receive the old value
  • Fixed call and db service "global" option logic error
  • Pass weChatApp service $content variable by reference
  • Added getResponseHeaders for call service
  • Returns array when getResponseHeader's second parameter is false
  • Added header option (equals to CURLOPT_HEADER) for call service
  • Added json and jsonp method for response

0.9.7-RC1 (2013-10-28)

  • Merged urlDebugger service into request service, added overwriteMethod and overwriteAjax options for request service
  • Added isVerifyToken method for weChatApp service, close #146
  • Added beforeSend callback for WeChatApp service
  • Added asset service to resolve javascript and css file cache
  • Make sure all WeChatApp service text rules is case insensitive
  • Renamed WeChatApp service "fallback" method to "defaults"
  • Simplified WeChatApp service parse XML logic
  • Refactored WeChatApp service to use array instead of SimpleXMLElement to construct response content
  • Removed keyword property in WeChatApp service
  • Refactored class from Mongo to MongoClient, refs #129
  • Refactored url service to generate URL by specified URL and parameters instead of predefined template
  • Fixed cache object is null when set new driver for cache service
  • Added getFirstMessage for base validator
  • Added findOne for db service
  • Injects app service into controller object
  • Renamed service property from "deps" to "providers"
  • Added exception code (1020) for store callback cache error
  • Automatic loads record in query builder when called magic get/set or array access
  • Added luhn validator, refs #148
  • Added getModifiedData method for record class
  • Decoupled db and cache service, moved get fields logic to record class
  • Added skeleton application demo "new-app"
  • Triggers "afterLoad" callback when calls record's reload method
  • Added getAttrs method for WeChatApp service

0.9.6 (2013-10-09)

  • Fixed record status error when record is created from query builder
  • Added getCurlInfo method for call service
  • Close the cURL session on call service destruct
  • Added doc for password service and isPassword validator
  • Added options parameter for datetime validators
  • Renamed isEmpty validator to isPresent

0.9.6-RC1 (2013-10-05)

  • Added ArrayAccess support for db record class
  • Fixed create db record error when key name is class property name
  • Added getIterator method for session service
  • Removed weChatApp deprecated FuncFlag
  • Added beforeSend/afterSend callback for response service
  • Added reconnect method for db service
  • Added insertBatch method for db service, refs #137
  • Added master-salve db support for db service, refs #133
  • Updated query exception to PDOException, while previous is RuntimeException and hard to catch
  • Added toJson method for record class
  • Added callbacks for record class
  • Added reload method for record class
  • Added beforeValidate callback for validate service
  • Added removeField method for validator service
  • Added toArray method for session service
  • Added exists method for session service
  • Fixed record status error after created
  • Renamed all methods from inXxx to isXxx
  • Updated return annotation from class name to $this for better code hint
  • Added is method for env service to detect custom env name
  • Renamed Widget::create to Widget::getContainer, add Widget::setContainer method
  • Improve record class toArray method
  • Added support to generate database table fields
  • Renamed inconsistent method from getRules to getFieldRules
  • Merged is validator into validate service
  • Removed developer option disableSslVerification, use cURL option CURLOPT_SSL_VERIFYPEER instead
  • Added support to parse response header only when CURLOPT_HEADER is true
  • Added getCurlOption and setCurlOption methods for call service
  • Added optional parameter $field for record class isModified method
  • Added throwException option for call service
  • Renamed db service globalCallbacks option to global
  • Added array parameters support for logging message
  • Added support for parsing and return muliti response headers
  • Added arrayAccess, count, foreach support for call service
  • Added __toString method for call service to return the response body
  • Added phone validator
  • Added password service to genrate secure password
  • Fixed validate flow not break when required rule is invalid
  • Added password validator

0.9.5 (2013-09-08)

  • Added getIterator method for request and cookie services
  • Added fields property for record class
  • Merged flush, download service into response service, refs #135
  • Added headers for redirect service when send by custom view

0.9.5-RC1 (2013-09-04)

  • Added support for env service to get server IP in CLI mode
  • Added key prefix for cache services
  • Fixed MySQL cache return false when cache value not changed
  • Added new function wei, which means 微(micro) in Chinese
  • Added getLastSql, getQueries method for db service
  • Added getUrl, getMethod, getData, getIp for call service
  • Removed request service dependence in most services
  • Removed server, post, query, header, twig, smarty, dbal, entityManager, event services
  • Added getConfig and setConfig for service container, removed config method
  • Added new config service, ref #128
  • Merged map service into config service, refs #131
  • Renamed Widget\Stdlib\AbstractCache to Widget\BaseCase
  • Removed Widget\Validator\ValidatorInterface class
  • Added parameters for db service afterQuery callback
  • Fixed Widget\Db\Record class save method return false when no field value changed
  • Changed cache services' inc and dec methods to incr and decr
  • Added isModified method and modifiedData property for Widget\Db\Record class
  • Added setAliases, setDeps and isInstanced methods for service container
  • Added support for empty where condition to Widget\Db\QueryBuilder class
  • Changed log level priorities to adapted with Monolog
  • Added shorthand method service()->redis() to get original \Redis object
  • Rename service container callback options from construct & constructed to beforeConstruct & afterConstructed
  • Added setPrimaryKey & getPrimaryKey method for Widget\Db\Record
  • Renamed base class from Widget\AbstractWidget to Widget\Base
  • Fixed startsWith and endsWith validator error when findMe option is int
  • Merged Widget\Validator\BaseGroupValidator into Widget\Validator\SomeOf validator
  • Added name parameter for rule valdiator getMessages and getJoinedMessage methods
  • Added formatLog method for logger service
  • Added isCharLength validator
  • Added expire time support for dbCache service
  • Renamed equals validator to equalTo, refs #134
  • Added new validator services: identicalTo, greaterThan and lessThan
  • Renamed max and min validators to lessThanOrEqual and greaterThanOrEqual validators

0.9.4 (2013-08-07)

  • Changed cache services' increment and decrement methods to inc and dec
  • Refactored dbCache, use db service instead of dbal service to execute SQL
  • Added isNew method for record class
  • Added host, port and more options for db service, removed DSN option

0.9.4-RC1 (2013-08-02)

  • Merged cache service's cached method into get method
  • Added indexBy method for query builder
  • Added support that automatically create dependence map when configuration key contains ".", refs 6ca934c7fb79956f804641c3dc127a8789e03961
  • Fixed query builder parameter number error when parameter value is 0 or null, refs 719aec608e748bbc36089fe20a08d56bebe54f15
  • Fixed test error for PHPUnit < 3.7.0
  • Used db service instead of dbal service as recordExists validator db provider
  • Added map service that handles key-value map data
  • Added jsonObject dataType for call service
  • Removed __invoke method, __invoke method is optional, refs 7c7f13e3702c11bd5f35f4e9dcc74598e6cd72b3
  • Added getResponseJson method for call service
  • Allow null value as validate rules and messages, refs 132b13dcda99dbd56d596cc50dff13bba8a48c38
  • Added autoload paramter for import method
  • Removed WidgetAwareInterface and AbstractWidgetAware class, use service() is more convenient
  • Changed session namespace default to false
  • Added getResponse, getErrorStatus, getErrorException methods, disableSslVerification option for call service, refs #86
  • Added global option, connectFails callback, getUser and getPassword methods for db service
  • Fixed memcache and memcached option error

0.9.3 (2013-07-04)

  • Fixed WeChatApp click event letter case typo
  • Added introduction, installation, and configuration documentations
  • Added new demos : using YAML/JSON as service configuration
  • Added driverOptions for db service

0.9.3-RC1 (2013-06-26)

  • Added callback service to handle WeChat(Weixin) callback message
  • Added overwrite option for upload service
  • Added support for upload file without extension
  • Added getMulti and setMulti method for cache services
  • Added code completion supports for services, refs AbstractWidget
  • Removed all root namespace in docblock, refs a5db92949346b38adfc8818ba9aa3f70eb7cbdef
  • Added new service: arrayCache
  • Removed inMethod service
  • Added new API documentation: http://twinh.github.io/service/
  • Added getJoinedMessage method for validators, refs #52
  • Simplified cookie service options, refs fa88083a742f7aa7e8d6d1829a34e4ca853fb50a
  • Removed inGet, inPost, inAjax service, use request service instead
  • Merged sort and attr services in to arr service
  • Refactored dbCache service
  • Added couchbase service
  • Changed license to MIT
  • Added isColor validator
  • Added mongoCache service
  • Added call service
  • Merged validator into validate service
  • Added global function service to make it easy to receive service manager
  • Refactored error service, moved exception, fatal and notFound event to error service
  • Removed marker service
  • Added cached method for cache services
  • Renamed eventManager service to event
  • Renamed isPostCode to isPostcodeCn
  • Added Stdlib namespace, moved base cache, view, service aware class to Stdlib namespace
  • Renamed db service to dbal
  • Added new db service with basic CURD, light Active Record and Query Builder support
  • Refactored env service, use server IP to detect environment name
  • Added gravatar service
  • Added support for Chinese mobile number starts with 14
  • Added documentation for service class
  • Moved debug configuration to service class
  • Added FieldExists validator
  • Removed WidgetInterface, ViewInterface, CacheInterface and ArrayWidget class, make it more esay
  • Integrated with Coveralls, and Codeship
  • Refactored cookie and response services
  • Added more tests and improved more documentation

0.9.2-beta (2013-04-14)

  • Released first beta version
  • Added unit test and fixed lots of error for all services
  • Added validation component
  • Added first version of API documentation

2012-08-30

  • Moved to GitHub

2010-07-25

  • First commit in Google Code

2008-07-01

  • Project startup