AbstractCollection::getTotal()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
c 0
b 0
f 0
rs 10
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
3
/*
4
 * This file is part of gpupo/search
5
 *
6
 * (c) Gilmar Pupo <[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 Gpupo\Search\Result;
13
14
use Gpupo\Search\Paginator\PaginatorInterface;
15
use Gpupo\Common\Entity\CollectionAbstract ;
16
17
/**
18
 * Conjunto de Itens de resultado.
19
 */
20
abstract class AbstractCollection extends CollectionAbstract
21
{
22
    /**
23
     * Lista de documentos encontrados.
24
     */
25
    public function getMatches()
26
    {
27
        return $this->get('matches');
28
    }
29
30
    /**
31
     * Quantidade de documentos encontrados para a query, independente da paginação.
32
     */
33
    public function getTotal()
34
    {
35
        return intval($this->get('total'));
36
    }
37
38
    /**
39
     * @see getTotal()
40
     */
41
    public function getTotalFound()
42
    {
43
        return intval($this->get('total_found'));
44
    }
45
46
    /**
47
     * Tempo necessário para a pesquisa.
48
     */
49
    public function getTime()
50
    {
51
        return $this->get('time');
52
    }
53
54
    /**
55
     * Detalhes dos resultados para cada palavra.
56
     */
57
    public function getWords()
58
    {
59
        return $this->get('words');
60
    }
61
62
    /**
63
     * Detalhes dos resultados para cada palavra.
64
     */
65
    public function getSummary()
66
    {
67
        $string = "---\n";
68
        foreach ($this->getWords() as $k => $v) {
69
            $string .= '['.$k.']: Docs:'.$v['docs']
70
                .' | Hits:'.$v['hits']."\n";
71
        }
72
73
        return $string;
74
    }
75
76
    public function getPaginator()
77
    {
78
        return $this->get('paginator');
79
    }
80
81
    public function setPaginator(PaginatorInterface $paginator)
82
    {
83
        return $this->set('paginator', $paginator);
84
    }
85
86
    public function paginate($limit, $offset = 0)
0 ignored issues
show
Unused Code introduced by
The parameter $limit is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $offset is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
87
    {
88
    }
89
90
    /**
91
     * @return ItemInterface
92
     */
93
    public function factoryItem(array $array)
94
    {
95
        return new Item($array);
96
    }
97
98
    public function __construct(array $array = null)
99
    {
100
        return $this->load($array);
0 ignored issues
show
Bug introduced by
Constructors do not have meaningful return values, anything that is returned from here is discarded. Are you sure this is correct?
Loading history...
101
    }
102
103
    /**
104
     * @param array $array Lista de resultados
105
     */
106
    public function load(array $array = null)
107
    {
108
        if ($array) {
109
            $list = [];
110
111
            if (array_key_exists('matches', $array)) {
112
                $matches = $array['matches'];
113
                unset($array['matches']);
114
            } elseif (array_key_exists('matches', $array[0])) {
115
                $matches = $array[0]['matches'];
116
                unset($array[0]['matches']);
117
                $array = $array[0];
118
            } else {
119
                parent::__construct($array);
0 ignored issues
show
Comprehensibility Bug introduced by
It seems like you call parent on a different method (__construct() instead of load()). Are you sure this is correct? If so, you might want to change this to $this->__construct().

This check looks for a call to a parent method whose name is different than the method from which it is called.

Consider the following code:

class Daddy
{
    protected function getFirstName()
    {
        return "Eidur";
    }

    protected function getSurName()
    {
        return "Gudjohnsen";
    }
}

class Son
{
    public function getFirstName()
    {
        return parent::getSurname();
    }
}

The getFirstName() method in the Son calls the wrong method in the parent class.

Loading history...
120
121
                return $this;
122
            }
123
124
            foreach ($matches as $result) {
125
                $list[] = $this->factoryItem($result);
126
            }
127
128
            $array['itens'] = $list;
129
130
            parent::__construct($array);
0 ignored issues
show
Comprehensibility Bug introduced by
It seems like you call parent on a different method (__construct() instead of load()). Are you sure this is correct? If so, you might want to change this to $this->__construct().

This check looks for a call to a parent method whose name is different than the method from which it is called.

Consider the following code:

class Daddy
{
    protected function getFirstName()
    {
        return "Eidur";
    }

    protected function getSurName()
    {
        return "Gudjohnsen";
    }
}

class Son
{
    public function getFirstName()
    {
        return parent::getSurname();
    }
}

The getFirstName() method in the Son calls the wrong method in the parent class.

Loading history...
131
132
            return $this;
133
        }
134
    }
135
136
    public function __toString()
137
    {
138
        $string = '';
139
140
        foreach ($this->toArray() as $item) {
141
            $string .= (string) $item;
142
        }
143
144
        return $string;
145
    }
146
147
    public function toArray()
148
    {
149
        return (array) $this->get('itens');
150
    }
151
152
    /**
153
     * First item found.
154
     *
155
     * @return Item
156
     */
157
    public function getFirst()
158
    {
159
        return current($this->toArray());
160
    }
161
}
162