ClientInterface::autocomplete()
last analyzed

Size

Total Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 1
c 0
b 0
f 0
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
0 ignored issues
show
Bug introduced by
There is no parameter named $typeKey. Was it maybe removed?

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 method finale(...).

/**
 * @param array $germany
 * @param array $island
 * @param array $italy
 */
function finale($germany, $island) {
    return "2:1";
}

The most likely cause is that the parameter was removed, but the annotation was not.

Loading history...
49
     * @param   string  $attributeKey
50
     * @param   string  $searchValue
51
     * @return  AutocompleteResult[]
52
     */
53
    public function autocomplete(EntityMetadata $metadata, $attributeKey, $searchValue);
54
}
55