icewind/searchdav

sabre/dav 插件,用于实现 rfc5323 SEARCH

v3.1.0 2023-11-14 22:32 UTC

This package is auto-updated.

Last update: 2024-09-15 00:09:52 UTC


README

Build Status codecov Scrutinizer Code Quality

一个 sabre/dav 插件,用于实现 rfc5323 SEARCH

使用方法

该插件实现了 rfc 中的 DAV 特定部分,但将实际的搜索实现留给插件的用户。

这是通过实现 \SearchDAV\Backend\ISearchBackend 接口并在构造过程中传递给插件来完成的。

基本使用

$server = new \Sabre\DAV\Server();
$server->addPlugin(new \SearchDAV\DAV\SearchPlugin(new MySearchBackend()));

$server->exec();

术语

rfc 使用以下术语来描述搜索处理的各个部分

  • 搜索范围:被查询的 DAV 资源。

  • 搜索仲裁者:SEARCH 请求可以发送到的端点。

    注意,单个搜索仲裁者可以支持在多个范围内进行搜索

  • 搜索语法:某个范围内支持的类型搜索查询

    rfc5323 要求任何实现至少实现 "basicsearch",这也是该插件目前唯一支持的语法

  • 搜索模式:如何使用搜索语法的详细信息,例如可以搜索的支持属性

ISearchBackend

ISearchBackend 定义了仲裁端点、有效的查询范围、支持的搜索模式和实现了实际的搜索。

有关所需方法和其描述的完整列表,请参阅 ISearchBackend.php

查询

Query 类定义了客户端执行的查询,由四个部分组成

  • 选择:请求的属性。
  • 从:搜索应进行的范围。
  • 条件:搜索的过滤参数。
  • 排序:搜索结果应如何排序。

有关这些元素的更多信息,请参阅 Query.phpScope.phpOperator.phpOrder.php