Completed
Push — master ( 6b6a70...d90581 )
by Simonas
02:43 queued 51s
created

src/SearchEndpoint/QueryEndpoint.php (1 issue)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
3
/*
4
 * This file is part of the ONGR package.
5
 *
6
 * (c) NFQ Technologies UAB <[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
12
namespace ONGR\ElasticsearchDSL\SearchEndpoint;
13
14
use ONGR\ElasticsearchDSL\BuilderInterface;
15
use ONGR\ElasticsearchDSL\Query\Compound\BoolQuery;
16
use ONGR\ElasticsearchDSL\Serializer\Normalizer\OrderedNormalizerInterface;
17
use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
18
19
/**
20
 * Search query dsl endpoint.
21
 */
22
class QueryEndpoint extends AbstractSearchEndpoint implements OrderedNormalizerInterface
23
{
24
    /**
25
     * Endpoint name
26
     */
27
    const NAME = 'query';
28
29
    /**
30
     * @var BoolQuery
31
     */
32
    private $bool;
33
34
    /**
35
     * @var bool
36
     */
37
    private $filtersSet = false;
38
39
    /**
40
     * {@inheritdoc}
41
     */
42
    public function normalize(NormalizerInterface $normalizer, $format = null, array $context = [])
43
    {
44
        if (!$this->filtersSet && $this->hasReference('filter_query')) {
45
            /** @var BuilderInterface $filter */
46
            $filter = $this->getReference('filter_query');
47
            $this->addToBool($filter, BoolQuery::FILTER);
48
            $this->filtersSet = true;
49
        }
50
51
        if (!$this->bool) {
52
            return null;
53
        }
54
55
        return $this->bool->toArray();
56
    }
57
58
    /**
59
     * {@inheritdoc}
60
     */
61
    public function add(BuilderInterface $builder, $key = null)
62
    {
63
        return $this->addToBool($builder, BoolQuery::MUST, $key);
64
    }
65
66
    /**
67
     * {@inheritdoc}
68
     */
69
    public function addToBool(BuilderInterface $builder, $boolType = null, $key = null)
70
    {
71
        if (!$this->bool) {
72
            $this->bool = new BoolQuery();
73
        }
74
75
        return $this->bool->add($builder, $boolType, $key);
0 ignored issues
show
$boolType is of type array|null, but the function expects a string.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
76
    }
77
78
    /**
79
     * {@inheritdoc}
80
     */
81
    public function getOrder()
82
    {
83
        return 2;
84
    }
85
86
    /**
87
     * @return BoolQuery
88
     */
89
    public function getBool()
90
    {
91
        return $this->bool;
92
    }
93
94
    /**
95
     * {@inheritdoc}
96
     */
97
    public function getAll($boolType = null)
98
    {
99
        return $this->bool->getQueries($boolType);
100
    }
101
}
102