imevul/scopefilter

轻量级数组过滤库,使用 '作用域' 来定义过滤器。

1.0.2 2013-07-16 17:22 UTC

This package is auto-updated.

Last update: 2020-08-08 16:58:30 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

ScopeFilter

一个轻量级的PHP数据过滤库。可以轻松地根据指定的作用域过滤对象属性。同时支持JsonSerializable。

Flattr

许可

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

  • 初始发布。完全工作的库。