imevul / scopefilter
轻量级数组过滤库,使用 '作用域' 来定义过滤器。
1.0.2
2013-07-16 17:22 UTC
Requires
- php: >=5.3.2
- doctrine/common: >=2.3.0
This package is auto-updated.
Last update: 2020-08-08 16:58:30 UTC
README
ScopeFilter
一个轻量级的PHP数据过滤库。可以轻松地根据指定的作用域过滤对象属性。同时支持JsonSerializable。
许可
MIT (https://open-source.org.cn/licenses/MIT)
待办事项
什么都没有!目前我们已经完成。如果你发现了一个错误或者有很好的想法,请确保打开一个问题!
需求和限制
- PHP v5.3+
- 类必须实现
Scoped
接口并使用注解来定义作用域。
安装
你可以下载代码并包含 ScopeFilter/ScopeFilter.php
文件,或者如果你使用 Composer,只需在你的 composer.json 文件中添加以下要求
{
"require": {
"imevul/scopefilter": "dev-default"
}
}
这将添加最新的源作为项目依赖并通过 Composer 自动加载功能自动加载。如果你想确保你有稳定的版本,你可以指定版本号。例如
{
"require": {
"imevul/scopefilter": ">=1.1.1"
}
}
查看 标签页面 获取最新版本。
用法
使用过滤器非常简单。只需实现 Scoped
接口,将 @Scope({})
注解添加到你的属性上。然后运行以下代码进行过滤
$filter = new ScopeFilter();
$filter->filter($myObject, array("some.scope1", "some.scope2"));
这将返回一个根据你传递给方法的范围进行过滤的数据的关联数组。任何子节点也将递归地转换,使用 ScopeFilter->filter()
或 JsonSerializable->jsonSerialize()
。你也可以过滤其他任何数据结构,但是任何非 Scoped
对象将保持未修改。数组也将被迭代,每个项都会通过过滤器。
有关注解使用的示例,请参阅 /tests/ScopeFilterTest.php
文件。
最后
如果你发现任何错误或认为你的想法适合这个项目,请随意打开一个问题并/或发送一个拉取请求。
变更日志
2013-07-16 - v1.0.2
- 添加了对过滤任何类型输入的支持。如果它是一个
Scoped
对象的数组,则所有这些都将被过滤。 - 现在过滤非
Scoped
数据将返回未修改的数据。这意味着你可以有包含混合Scoped
/非Scoped
实体的数组。
2013-06-25 - v1.0.1
- 将所有文件转换为 Unix 行结束。
- 修复了 vendor/autoload 问题。
- 添加了自定义 PHPCS 规则集。
- 将 phpunit.xml 替换为 phpunit.xml.dist。
2013-06-24 - v1.0.0
- 初始发布。完全工作的库。