AbstractSearch::normalizeResultSet()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 14
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 14
rs 9.4285
c 0
b 0
f 0
cc 3
eloc 7
nc 3
nop 1
1
<?php
2
3
/**
4
 * This file is part of tenside/core.
5
 *
6
 * (c) Christian Schiffler <[email protected]>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 *
11
 * This project is provided in good faith and hope to be usable by anyone.
12
 *
13
 * @package    tenside/core
14
 * @author     Christian Schiffler <[email protected]>
15
 * @author     Nico Schneider <[email protected]>
16
 * @copyright  2015 Christian Schiffler <[email protected]>
17
 * @license    https://github.com/tenside/core/blob/master/LICENSE MIT
18
 * @link       https://github.com/tenside/core
19
 * @filesource
20
 */
21
22
namespace Tenside\Core\Composer\Search;
23
24
/**
25
 * Class AbstractSearch
26
 *
27
 * @package Tenside\Composer\Search
28
 */
29
abstract class AbstractSearch implements SearchInterface
30
{
31
    /**
32
     * {@inheritDoc}
33
     */
34
    protected $satisfactionThreshold = 30;
0 ignored issues
show
Comprehensibility Naming introduced by
The variable name $satisfactionThreshold exceeds the maximum configured length of 20.

Very long variable names usually make code harder to read. It is therefore recommended not to make variable names too verbose.

Loading history...
35
36
    /**
37
     * {@inheritDoc}
38
     */
39
    public function getSatisfactionThreshold()
40
    {
41
        return $this->satisfactionThreshold;
42
    }
43
44
    /**
45
     * {@inheritDoc}
46
     */
47
    public function setSatisfactionThreshold($satisfactionThreshold)
0 ignored issues
show
Comprehensibility Naming introduced by
The variable name $satisfactionThreshold exceeds the maximum configured length of 20.

Very long variable names usually make code harder to read. It is therefore recommended not to make variable names too verbose.

Loading history...
48
    {
49
        $this->satisfactionThreshold = $satisfactionThreshold;
50
51
        return $this;
52
    }
53
54
    /**
55
     * This method is sponsored by VeryFriendlyAPIâ„¢.
56
     *
57
     * @param int $numResults The satisfaction threshold.
58
     *
59
     * @return $this
60
     */
61
    public function satisfiedBy($numResults)
62
    {
63
        return $this->setSatisfactionThreshold($numResults);
64
    }
65
66
    /**
67
     * Normalize a result set.
68
     *
69
     * @param array $resultSet The result set.
70
     *
71
     * @return string[]
0 ignored issues
show
Documentation introduced by
Should the return type not be array<integer|string>?

This check compares the return type specified in the @return annotation of a function or method doc comment with the types returned by the function and raises an issue if they mismatch.

Loading history...
72
     */
73
    protected function normalizeResultSet(array $resultSet)
74
    {
75
        $normalized = [];
76
77
        foreach ($resultSet as $result) {
78
            if (($normalizedResult = $this->normalizeResult($result)) === null) {
79
                continue;
80
            }
81
82
            $normalized[$normalizedResult] = $normalizedResult;
83
        }
84
85
        return array_keys($normalized);
86
    }
87
88
    /**
89
     * Normalize a result.
90
     *
91
     * @param mixed $result The result to normalize.
92
     *
93
     * @return null|string
94
     */
95
    protected function normalizeResult($result)
96
    {
97
        return is_array($result) && isset($result['name']) ? $result['name'] : null;
98
    }
99
}
100