digital-backstage / searchable
提供与分页库的互操作性
v1.3.1
2017-12-07 10:21 UTC
Requires
- greg0ire/enum: ^3.5 || ^4.0
Requires (Dev)
- phpspec/phpspec: ^4.2
This package is not auto-updated.
Last update: 2024-09-11 08:20:58 UTC
README
提供接口,允许以标准化的方式搜索我们库中实现的存储库。
定义以下接口
DigitalBackstage\Searchable\Paginable
此接口定义了当查询 Searchable
存储库时应返回的内容。它应该是不可变的,提供所有可用项目的一个子集,以及分页信息,即
- 当前页码;
- 最后一页码;
- 每页项目数;
- 可用项目数。
页码从1开始。它扩展了 \Traversable
,但没有扩展 \Countable
,因为这会很令人困惑:它应该返回页数?可用项目数?当前页的项目数?
DigitalBackstage\Searchable\SearchQuery
Searchable
存储库通过此对象进行查询。它由一个表达式组成,该表达式应由存储库转换为DQL、SQL或JSON,并提供有关所需页码和页面大小的信息。
DigitalBackstage\Searchable\QueryExpression
这表示一个表达式,并且有多个实现。存储库应列出它们支持的实现。
DigitalBackstage\Searchable\SortedSearchQuery
如果客户端想指定除默认排序之外的排序顺序,则必须实现 SortedSearchQuery
。
DigitalBackstage\Searchable\Searchable
对象存储库。必须用 SearchQuery
进行查询,并必须返回 Paginable
。必须宣传它支持的查询字段。应在适当的时候抛出 PageOutOfRange
和 UnsupportedSearchField
。