0.17.9 (2024-11-01)
- Record, deprecated: deprecate
Record
class, should useModel
instead (9b55e4c) - Req: 增加
isPatch
,isPut
和isDelete
方法 (6aaefe0)
0.17.8 (2024-09-01)
- ClassMap: 根目录生成类名错误 (85a8dcb)
- @miaoxing/dev: upgrade from
9.1.3
to9.2.0
0.17.7 (2024-08-03)
- @miaoxing/dev: upgrade from
9.1.2
to9.1.3
0.17.6 (2024-07-31)
- @miaoxing/dev: upgrade from
9.1.1
to9.1.2
0.17.5 (2024-05-30)
- Str: 增加
goods
单数转为goods
(45a8b6b)
0.17.4 (2024-03-31)
- Req:
getHeader
支持键名包含-
,如Access-Control-Request-Method
(6436091) - Time: 增加
setTimestamp
方法 (49c709f)
- @miaoxing/dev: upgrade from
9.1.0
to9.1.1
0.17.3 (2024-02-20)
0.17.2 (2024-01-08)
- @miaoxing/dev: upgrade from
9.0.0
to9.1.0
0.17.1 (2023-12-31)
- ClassMap: 类重复时,记录类名错误 (4e5c3a7)
- @miaoxing/dev: upgrade from
8.2.4
to9.0.0
0.17.0 (2023-11-30)
- 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)
- 更改 offsetXxx, count, getIterator 方法返回值以兼容 PHP 8.1 (c32c90e)
- 更改 offsetXxx, count, getIterator 方法返回值以兼容 PHP 8.1
- @miaoxing/dev: upgrade from
8.2.3
to8.2.4
0.16.0 (2023-11-02)
- QueryBuilder:
where(Closure)
生成的语句参数顺序错误 (9b743a1) - QueryBuilder:
where(Closure)
生成的语句排除默认范围查询 (4255288)
- Http: 改为每次调用都创建一个新的对象 (94add7a)
- Http: 允许通过
url
方法初始化服务,并通过params
,json
等方法链式调用 (b6d6c0a) - Http: 允许静态调用
get
,post
,put
,delete
,patch
方法 (3e16dc6) - Http: 增加
params
用于向 URL 增加参数 (ccc5161) - Http: 如果返回内容是
application/json
,则自动解析返回内容为 JSON 数组,而不是返回纯文本 (49adca1) - Http: 支持传入
json
来发送 json 数据 (8052cd6) - Str: 使用自定义的
pluralize
方法,移除doctrine/inflector
依赖 (6188a93) - Str: 使用自定义的
singularize
方法,移除doctrine/inflector
依赖 (63b8335)
- Http:
Http
服务移除global
选项 - Http:
Http
服务如果返回内容是application/json
,则自动解析返回内容为 JSON 数组,而不是返回纯文本 - Http:
get
,post
,put
,delete
,patch
参数更新为($url = null, array $options = []): self
- Str: 使用自定义的
singularize
方法,移除doctrine/inflector
依赖
0.15.12 (2023-09-30)
- classMap: 允许通过
[@ignored](https://github.com/ignored)
注释来忽略生成类映射表 (d60e29e) - QueryBuilder:
update
和delete
语句支持orderBy
limit
方法 (6d5812f)
0.15.11 (2023-09-02)
- ClassMap: 解决过滤重复类错误 (357f3cf)
- App: 增加
actionMethodFormat
选项,用于设置操作方法的格式 (5d8c2cd) - Ret, experimental: 增加
assert
方法,当 ret 为错误时,抛出异常 (46db6e6) - Schema: 增加
userId
方法,用于增加user_id
列 (7d56599) - Str: 增加
cut
方法,用于截断字符串 (c78cd98) - TreeTrait: 模型增加
TreeTrait
(bbab56b)
- @miaoxing/dev: upgrade from
8.2.2
to8.2.3
0.15.10 (2023-07-31)
- Model: 关联数据应设置为已加载的状态 (211301c)
- QueryBuilder: 增加
exists
方法,用于判断查询是否有结果 (b0bb602)
- @miaoxing/dev: upgrade from
8.2.1
to8.2.2
0.15.9 (2023-06-30)
- BaseController, experimental: 增加
init
方法 (00fc885)
0.15.8 (2023-05-31)
- Migration:
rollback
允许只回退指定的一个编号 (9e9a0b3) - Migration:
target
允许传入大写开头的类名 (6088573) - Res: 增加
getHeaders
方法 (160f161)
- @miaoxing/dev: upgrade from
8.2.0
to8.2.1
0.15.7 (2023-04-30)
0.15.6 (2023-04-15)
- V:
json
列允许存入数组,改用isJson
校验json
列 (432790f)
- 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)
- BaseController: 增加
getMiddleware
和removeMiddleware
方法 (fa3c0b0) - classMap: 支持多级继承的情况 (6c152f0)
- isModelExists: 增加
isModelExists
校验器 (ccc2b8f) - Model: 支持多个记录获取多对多(如
$articles->tags
)的情况 (95368e9) - V: 增加
notModelDup
方法,简化数据库重复值校验逻辑 (7de73f5) - V: 增加
requiredIfNew
方法,用于校验模型新对象必须有数据 (921b187)
0.15.4 (2023-01-31)
- 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)
0.15.3 (2023-01-01)
- isTimestamp: 增加
isTimestamp
校验器,用于校验数据是否符合数据库timestamp
字段 (28e844c) - isUnique: 增加
isUnique
校验器,用于检查数组不能包含相同的值 (b215bd0) - Model:
Model::update
对参数进行转换 (024403b) - QueryBuilder: 增加
whereNot
方法 (540b629) - Req: 增加
getServerIp
方法 (488e8a6) - Req: 增加
trustedProxies
选项,允许控制是否信任代理 IP (cd575b3) - Schema: 增加
binary
和varBinary
方法 (a3ded88)
- @miaoxing/dev: upgrade from
8.1.3
to8.2.0
0.15.2 (2022-12-01)
- Model:
getColumns
方法增加返回title
(00dab8d) - Model:
getColumns
方法增加返回type
,unsigned
,length
和scale
(53a5992) - Model, Cast:
decimal
字段,如果传入空值,自动转换为 0 (0e29613) - Schema: 增加
dropSoftDeletable
方法 (d8e9b94) - Str: 增加
truncate
方法 (2492499) - V:
modelColumn
名称留空时,从数据库表读取名称 (97243d6) - V: 支持指定数据表字段生成校验规则 (77f74eb)
0.15.1 (2022-11-01)
- V:
key
为0
时被识别为校验所有数据 (66cd782)
- isImageUrl: 增加错误信息的中文翻译 (a67ca6d)
- isObject, experimental: 增加长度校验 (e21c008)
- isTrue: 增加
isTrue
校验器,用于校验值是否为真,如选中单选框,同意协议 (1f4ae10)
0.15.0 (2022-09-30)
- env: 移除通过
ifconfig
获取本机 ip 的功能 (a05d019)
- 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)
- isEmpty, experimental:
false
和空数组[]
默认不再认为是空值 - env: 移除通过
ifconfig
获取本机 ip 的功能 - idCard: 移除旧的身份证校验错误的翻译信息,增加新的翻译信息
- idCardCn: 不再支持已经停用的 15 位身份证号
0.14.0 (2022-09-03)
- DbCache: 指定表前缀时出错 (e0a294f)
- apc: 移除失效的
apc
缓存 (e178b00) - bicache: 主缓存默认缓存由
apc
改为apcu
(2e74df0) - cache: 默认缓存由
apc
改为phpFileCache
(fbd12fc)
- apcu: 增加
apcu
缓存服务 (6ccf765) - db: 增加
setTablePrefix
方法 (04f50eb) - QueryBuilder: 增加
orderByRaw
方法 (f6a4c54)
- bicache:
bicache
主缓存默认缓存由apc
改为apcu
- cache: 默认缓存由
apc
改为phpFileCache
- apc: 移除失效的
apc
缓存 - QueryBuilder:
QueryBuilder::orderBy
第一个参数移除类型,允许传入Raw
对象
0.13.0 (2022-08-02)
- IsEach:
each
方法传入V
对象报错 (0b8eb58)
- Cls: 移动
Str
到wei
中 (fedea6a)
- Cls: 增加
cls
服务,用于处理类相关功能 (5c8389e) - Model: 移动模型基类到
wei
中 (5c532ca) - QueryBuilder: 移动
QueryBuilder
到wei
中 (d7a3826) - Ret, experimental: 增加
RetException
(52b4de3) - Str: 移动
Str
到wei
中 (6897b4d) - V: 增加
assert
方法,校验成功返回校验过的数据,失败抛出异常 (1037684) - V: 支持通过任意校验器初始化键名校验,重写
V
服务 (b6e2236) - V, experimental: 增加
self
方法,用于校验整个数据,而非数据中的某一项 (1bed1f4) - Validator, experimental: 移除
BASIC_TYPE
常量 (c015f0a)
- Cls: 移动
Str
到wei
中 - V:
V
服务不再支持串联校验,以便支持通过任意校验器初始化键名校验
- @miaoxing/dev: upgrade from
8.1.2
to8.1.3
0.12.6 (2022-07-02)
0.12.5 (2022-07-01)
- NearCache: 增加
getFront
和getBack
方法 (07d73fe)
- @miaoxing/dev: upgrade from
8.1.1
to8.1.2
0.12.4 (2022-06-01)
- Req: 请求方式为
POST
才可以通过_method
参数来更改请求方式 (b5d0e91)
- @miaoxing/dev: upgrade from
8.1.0
to8.1.1
0.12.3 (2022-04-30)
- Schema: 解决
rename
表名缺少前缀 (edfa09d)
- Ret: 允许
Ret
对象转换为字符串 (2e67678)
0.12.2 (2022-03-31)
- Schema:
drop
,dropIfExists
支持支持一次删除多个表名 (5429a99)
0.12.1 (2022-02-28)
- Upload: 创建目录使用默认的
0755
权限,解决 PHP 写入文件 nginx 不可读的问题 (6f86418)
- service, experimental: 更改
instance
为静态方法 (127b91e) - Upload:
save
方法返回值增加name
,type
和size
(b21604a) - Upload: 增加
path
属性,用于指定上传文件的完整路径 (6842a8b) - Upload: 增加
save
方法 (7221d33) - Upload: 增加默认名称
file
的中文翻译 (63703ca)
0.12.0 (2022-02-05)
- Cache: 移除
getResultCode
方法,该方法是memcached
特有的 (5a6da73) - Cache: 移除过时的
Couchbase
服务 (2eaa354) - Cache: 移除通过
get
设置缓存的功能,改用remember
(37fd419) - Memcached:
getMulti
改为直接调用getMultiple
(9039f6b)
- Cache: 允许静态调用缓存方法 (d5eb300)
- Cache: 增加
has
,delete
,getMultiple
和setMultiple
方法,废弃exists
,remove
,getMultiple
和setMultiple
方法 (3bf9df0) - Cache: 增加
isHit
方法用于判断get
或getMultiple
获取的缓存是否存在 (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: 支持
getMultiple
,setMultiple
和isHit
方法 (6a007c9) - wei: 增加
getBy
方法,用于传入类名,获取对应的服务 (26b4632) - Wei: 增加
removeConfig
方法 (84137c7)
- Memcached:
Memcached
服务移除isMemcached3
属性 - Cache: 移除
getResultCode
方法,该方法是memcached
特有的 - Cache: 移除通过
get
设置缓存的功能,改用remember
- Cache: 移除过时的
Couchbase
服务 - Cache: 缓存无数据返回值由
false
改为null
- Redis: 解决存储整数读取出来为字符串
- 原来存入的字符串数字会被读取为整形或浮点数
- 新存入的数据,如果需要调用
in/decrement
,需使用整形,不可使用字符串
- @miaoxing/dev: upgrade from
8.0.1
to8.1.0
0.11.1 (2022-01-12)
- wei, Error: 解决错误时,使用
response
对象发送响应缺少 header 的问题 (d4fe44d)
- @miaoxing/dev: upgrade from
8.0.0
to8.0.1
0.11.0 (2021-10-28)
- Db: 不缓存 dsn,每次应实时生成 (33a525a)
- Migration: migrations 为空时处理错误 (b1bef9a)
- Migration: 构造函数的参数允许为空数组 (b2d6239)
- wei: 子类通过
static::
调用父类私有常量会出错 (19ec9f2)
- db: 增加
raw
,getRawValue
和isRaw
方法来生成和处理原生 SQL 值 (899e8f9) - Migration: 增加
reset
方法,用于回滚所有的迁移脚本 (b292617) - Req: 允许通过
HTTP_X_HTTP_METHOD_OVERRIDE
标头来覆盖请求方法 (320f03d) - Req: 增加
getHeader
和hasHeader
方法 (aa4dce0) - Req: 增加
isPreflight
方法 (ae4a261) - Ret: 增加
with
和data
方法用于附加数据 (6160708) - Ret: 增加 getter 和 setter,用于获取
code
,message
,data
和自定义数据 (e93ddbe) - Ret, experimental: 增加
include
和includeWith
方法,用于通过 URL 指定参数来附加数据 (a349eff) - Ret, experimental: 增加
transform
方法,用于转换data
(d225bb2) - Schema: 增加
hasDatabase
,createDatabase
和dropDatabase
方法 (686e5fc) - Schema: 增加
userIdType
属性和方法,用于自定义用户编号字段的类型 (0614a46) - Validator: 增加
check
方法,用于检查后返回一个Ret
对象 (5aa45d2)
- Redis: Redis 服务去除内置的
SERIALIZER_PHP
,改用 Laravel 的serialize
逻辑 - Wei: 配置分隔符改用
.
,服务名称分隔符改用:
- db: 移除通过
(objet)
生成原生 SQL 值,改为通过raw
方法生成
- @miaoxing/dev: upgrade from
7.0.1
to8.0.0
0.10.11 (2021-05-21)
- Validator: 幂计算符号错误,整数溢出变浮点数 (dcb6980)
0.10.10 (2021-05-12)
- @miaoxing/dev: upgrade from
7.0.0
to7.0.1
0.10.9 (2021-05-11)
- wei: 增加 psr-4 自动加载 (cb11217)
- @miaoxing/dev: upgrade from
6.4.0
to7.0.0
0.10.8 (2021-04-27)
- IsObject: 增加
IsObject
校验规则 (08c36e8)
- @miaoxing/dev: upgrade from
6.3.4
to6.4.0
0.10.7 (2021-03-22)
- @miaoxing/dev: upgrade from
6.3.3
to6.3.4
0.10.6 (2021-03-12)
- @miaoxing/dev: upgrade from
6.3.2
to6.3.3
0.10.5 (2021-03-10)
- @miaoxing/dev: upgrade from 6.3.1 to 6.3.2
0.10.4 (2021-03-09)
- @miaoxing/dev: upgrade from 6.3.0 to 6.3.1
0.10.3 (2021-03-09)
- @miaoxing/dev: upgrade from 6.2.0 to 6.3.0
0.10.2 (2021-03-05)
- PHP 7.4 Trying to access array offset on value of type float|null|bool 错误 (3301cbe)
0.10.1 (2021-03-05)
- @miaoxing/dev: upgrade from 6.1.2 to 6.2.0
0.10.0 (2021-03-05)
- 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)
- IsArray: 增加
minLength
,maxLength
选项 (c6dc44c) - IsCallback: 增加
getValidator
方法,可用于回调中获取当前校验器的信息 (c3718cb) - IsEach:
each
校验器支持获取当前校验数据和键名 (182852e) - IsEach: 增加 IsEach 校验规则,用于校验二维数组 (8dc17e7)
- IsEmpty: 增加
IsEmpty
校验规则 (88dd648) - IsInt: 增加
min
,max
选项 (04ab90f) - IsString: 增加
minLength
和maxLength
选项 (962ace0) - IsText, IsMediumText: 增加
IsText
和IsMediumText
校验规则 (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
,IsUDefaultInt
和IsUBigInt
(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
开头的方法来表示无符号,例如uInt
,uDecimal
,移除autoUnsigned
选项,改为明确指定是否有符号 (f964fc1)
- IsChar: 更改
IsCharLength
为IsChar
(41853b4) - Schema: 移除废弃的
timestampsV1
,userstampsV1
和softDeletableV1
方法,直接使用timestamps
,userstamps
和softDeletable
(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)
- IsEach:
V::getValidator
方法移除$data
参数IsEach::getValidatorOptions
方法增加$data
参数 - 为数值类型增加
u
开头的方法来表示无符号,例如uInt
,uDecimal
,移除autoUnsigned
选项,改为明确指定是否有符号 - Schema:
date
,datetime
,timestamp
类型的默认值改为NULL
,匹配 MySQL 5.7+ 的默认模式 IsDateTime
改名为IsAnyDateTime
,增加IsDateTime
校验格式为Y-m-d H:i:s
的日期- Schema: 移除废弃的
timestampsV1
,userstampsV1
和softDeletableV1
方法,直接使用timestamps
,userstamps
和softDeletable
- V: 基础类型不再可以作为方法附加到已有的校验中,需直接调用
addRule($type)
- IsChar: 更改
IsCharLength
为IsChar
- Validator: 基础类型校验器移除 Val 后缀
- Validator: 校验规则类移除 Validator 命名空间,增加 Is 前缀
- Validator: Number 规则传入 NAN 将返回 false
- 校验数组或对象数据时,如果数据中包含要校验的键名,则认为值是存在的
0.9.31 (2020-09-25)
- V: 链接验证服务每次调用都应创建新的对象 (1129420)
- Pinyin: 获取拼音可以设置分隔符 (1a35a7b)
- @miaoxing/dev: upgrade from 6.1.1 to 6.1.2
0.9.30 (2020-08-17)
- @miaoxing/dev: upgrade from 6.1.0 to 6.1.1
0.9.29 (2020-08-14)
- @miaoxing/dev: upgrade from 6.0.0 to 6.1.0
0.9.28 (2020-08-14)
- @miaoxing/dev: upgrade from to 0.1.0
0.9.27 (2020-08-07)
- error: 增加处理 Throwable 错误 (6d59a86)
0.9.26 (2020-08-06)
- 增加 Req, Res 服务,废弃原来的 Request,Response (1a6a7c3)
0.9.25 (2020-08-01)
- Share 服务加入 wei 中 (c881063)
- "test: 设置 driver 后还原" (93be887)
- 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 的问题
- 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+
- 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: 自定义控制器格式中的命名空间,要求大写形式
- StatsD: 增加StatsD服务,用于发送统计数据到https://github.com/etsy/statsd
- NearCache: 增加NearCache服务,可用于缓存远程数据到本地缓存中,减少远程调用
- Memcached: 兼容memcached 3.0 getMulti方法只支持两个参数的情况
- Env: 允许通过本地的.env.php返回值获取环境名称
- Error: 增加autoExit选项,在命令行下运行失败时,会调用exit返回错误码,以便外部程序判断运行结果
- Record: 修复page传入过大值后,offset溢出变负数的问题 #184
- 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重复调用出错
- Event: 移除$wei作为事件的首个参数 #183
- Event: 增加until方法,当获取到首个非null返回就停止执行剩下的事件 #183
- Record: setData可以传入数组或ArrayAccess refs 39588ce285624ffca23138a6b9aacf1ce3810fcc
- Env: env支持多个服务器都设置为相同的环境名称 refs e96e7ff63919c80425d5b7733a5468f74f107cf0
- TagCache: 增加标签缓存服务 #180
- Record: 增加缓存和标签缓存支持,增加了cache, tags, setCacheKey, clearTagCache等缓存方法 #180
- Event: 增加事件功能 #181
- 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
- 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
- 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
- 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
- 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
- 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
- Add "detach" support for record class, refs #164
- Add setAll and setAll method for record class, refs #168
- Added safeUrl service, close #171
- Added defaultLayout property for view service
- Added postJson method for http service, close #172
- 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
- Do not output libxml error messages to screen in weChatApp service, refs #153
- 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
- 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
- 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
- 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
- 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
- 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
- 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 isRuntimeException
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
toisXxx
- 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 intovalidate
service - Removed developer option
disableSslVerification
, use cURL optionCURLOPT_SSL_VERIFYPEER
instead - Added support to parse response header only when CURLOPT_HEADER is true
- Added
getCurlOption
andsetCurlOption
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
- 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
- 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
andsetConfig
for service container, removedconfig
method - Added new
config
service, ref #128 - Merged
map
service intoconfig
service, refs #131 - Renamed
Widget\Stdlib\AbstractCache
toWidget\BaseCase
- Removed
Widget\Validator\ValidatorInterface
class - Added parameters for
db
serviceafterQuery
callback - Fixed
Widget\Db\Record
class save method return false when no field value changed - Changed cache services'
inc
anddec
methods toincr
anddecr
- Added
isModified
method andmodifiedData
property forWidget\Db\Record
class - Added
setAliases
,setDeps
andisInstanced
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
tobeforeConstruct
&afterConstructed
- Added
setPrimaryKey
&getPrimaryKey
method forWidget\Db\Record
- Renamed base class from
Widget\AbstractWidget
toWidget\Base
- Fixed
startsWith
andendsWith
validator error whenfindMe
option is int - Merged
Widget\Validator\BaseGroupValidator
intoWidget\Validator\SomeOf
validator - Added name parameter for rule valdiator
getMessages
andgetJoinedMessage
methods - Added
formatLog
method forlogger
service - Added
isCharLength
validator - Added expire time support for
dbCache
service - Renamed
equals
validator toequalTo
, refs #134 - Added new validator services:
identicalTo
,greaterThan
andlessThan
- Renamed
max
andmin
validators tolessThanOrEqual
andgreaterThanOrEqual
validators
- Changed cache services'
increment
anddecrement
methods toinc
anddec
- 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
- Merged cache service's
cached
method intoget
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 forcall
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
andAbstractWidgetAware
class, useservice()
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
- 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
- Added
callback
service to handle WeChat(Weixin) callback message - Added
overwrite
option for upload service - Added support for upload file without extension
- Added
getMulti
andsetMulti
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
andattr
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
andnotFound
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 toStdlib
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
- Released first beta version
- Added unit test and fixed lots of error for all services
- Added validation component
- Added first version of API documentation
- Moved to GitHub
- First commit in Google Code
- Project startup