1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace As3\Modlr\Search; |
4
|
|
|
|
5
|
|
|
use As3\Modlr\Metadata\EntityMetadata; |
6
|
|
|
use As3\Modlr\Metadata\Interfaces\SearchMetadataFactoryInterface; |
7
|
|
|
use As3\Modlr\Persister\PersisterInterface; |
8
|
|
|
use As3\Modlr\Persister\RecordSetInterface; |
9
|
|
|
|
10
|
|
|
/** |
11
|
|
|
* Defines the service implementation for searching for (and modifying) models in the search layer. |
12
|
|
|
* |
13
|
|
|
* @author Jacob Bare <[email protected]> |
14
|
|
|
*/ |
15
|
|
|
interface ClientInterface |
16
|
|
|
{ |
17
|
|
|
/** |
18
|
|
|
* Gets the key name for this search client. |
19
|
|
|
* Is used to uniquely indentify this search type by the search manager. |
20
|
|
|
* Is also the type key for the search metadata layer. |
21
|
|
|
* |
22
|
|
|
* @return string |
23
|
|
|
*/ |
24
|
|
|
public function getClientKey(); |
25
|
|
|
|
26
|
|
|
/** |
27
|
|
|
* Gets the search metadata factory for creating SearchInterface instances. |
28
|
|
|
* |
29
|
|
|
* @return SearchMetadataFactoryInterface |
30
|
|
|
*/ |
31
|
|
|
public function getSearchMetadataFactory(); |
32
|
|
|
|
33
|
|
|
/** |
34
|
|
|
* Queries/searchs for records for the specified type. |
35
|
|
|
* Uses the search query, runs the search, and then loads the full models from the persistence layer. |
36
|
|
|
* |
37
|
|
|
* @todo Implement sorting and pagination (limit/skip). |
38
|
|
|
* @param EntityMetadata $metadata |
39
|
|
|
* @param array $criteria |
40
|
|
|
* @param PersisterInterface $persister |
41
|
|
|
* @return RecordSetInterface |
42
|
|
|
*/ |
43
|
|
|
public function query(EntityMetadata $metadata, array $criteria, PersisterInterface $persister); |
44
|
|
|
|
45
|
|
|
/** |
46
|
|
|
* Returns a set of autocomplete results for a model type, attribute key, and search value. |
47
|
|
|
* |
48
|
|
|
* @param string $typeKey |
|
|
|
|
49
|
|
|
* @param string $attributeKey |
50
|
|
|
* @param string $searchValue |
51
|
|
|
* @return AutocompleteResult[] |
52
|
|
|
*/ |
53
|
|
|
public function autocomplete(EntityMetadata $metadata, $attributeKey, $searchValue); |
54
|
|
|
} |
55
|
|
|
|
This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.
Consider the following example. The parameter
$italy
is not defined by the methodfinale(...)
.The most likely cause is that the parameter was removed, but the annotation was not.