Completed
Pull Request — master (#230)
by
unknown
02:43 queued 01:26
created

Feed::setImage()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 6
ccs 0
cts 3
cp 0
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
crap 2
1
<?php declare(strict_types=1);
2
/*
3
 * This file is part of the feed-io package.
4
 *
5
 * (c) Alexandre Debril <[email protected]>
6
 *
7
 * For the full copyright and license information, please view the LICENSE
8
 * file that was distributed with this source code.
9
 */
10
11
namespace FeedIo;
12
13
use FeedIo\Feed\Node;
14
use FeedIo\Feed\Item;
15
use FeedIo\Feed\ItemInterface;
16
17
class Feed extends Node implements FeedInterface, \JsonSerializable
18
{
19
    /**
20
     * @var \ArrayIterator
21
     */
22
    protected $items;
23
24
    /**
25
     * @var string $url
26
     */
27
    protected $url;
28
29
    /**
30
     * @var string $language
31
     */
32
    protected $language;
33
34
    /**
35
     * @var string $image
36
     */
37
    protected $image;
38
39
    protected $ns;
40
41 40
    public function __construct()
42
    {
43 40
        $this->items = new \ArrayIterator();
44 40
        $this->ns = new \ArrayIterator();
45
46 40
        parent::__construct();
47 40
    }
48
49
    /**
50
     * @return string $url
51
     */
52 3
    public function getUrl() : ? string
53
    {
54 3
        return $this->url;
55
    }
56
57
    /**
58
     * @param string $url
59
     * @return FeedInterface
60
     */
61 5
    public function setUrl(string $url = null) : FeedInterface
62
    {
63 5
        $this->url = $url;
64
65 5
        return $this;
66
    }
67
68
    /**
69
     * @return string $language
70
     */
71 2
    public function getLanguage(): ? string
72
    {
73 2
        return $this->language;
74
    }
75
76
    /**
77
     * @param string $language
78
     * @return FeedInterface
79
     */
80
    public function setLanguage(string $language = null): FeedInterface
81
    {
82
        $this->language = $language;
83
84
        return $this;
85
    }
86
87
    /**
88
     * @return string
89
     */
90 1
    public function getImage() : ? string
91
    {
92 1
        return $this->image;
93
    }
94
95
    /**
96
     * @param  string $description
0 ignored issues
show
Bug introduced by
There is no parameter named $description. 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...
97
     * @return NodeInterface
98
     */
99
    public function setImage(string $image = null) : FeedInterface
100
    {
101
        $this->image = $image;
102
103
        return $this;
104
    }
105
106
107
108
109
    /**
110
     * (PHP 5 &gt;= 5.0.0)<br/>
111
     * Return the current element
112
     * @link http://php.net/manual/en/iterator.current.php
113
     * @return mixed Can return any type.
114
     */
115 17
    public function current()
116
    {
117 17
        return $this->items->current();
118
    }
119
120
    /**
121
     * (PHP 5 &gt;= 5.0.0)<br/>
122
     * Move forward to next element
123
     * @link http://php.net/manual/en/iterator.next.php
124
     * @return void Any returned value is ignored.
125
     */
126 15
    public function next()
127
    {
128 15
        $this->items->next();
129 15
    }
130
131
    /**
132
     * (PHP 5 &gt;= 5.0.0)<br/>
133
     * Return the key of the current element
134
     * @link http://php.net/manual/en/iterator.key.php
135
     * @return mixed scalar on success, or null on failure.
136
     */
137 2
    public function key()
138
    {
139 2
        return $this->items->key();
140
    }
141
142
    /**
143
     * (PHP 5 &gt;= 5.0.0)<br/>
144
     * Checks if current position is valid
145
     * @link http://php.net/manual/en/iterator.valid.php
146
     * @return boolean The return value will be casted to boolean and then evaluated.
147
     *                 Returns true on success or false on failure.
148
     */
149 19
    public function valid()
150
    {
151 19
        return $this->items->valid();
152
    }
153
154
    /**
155
     * (PHP 5 &gt;= 5.0.0)<br/>
156
     * Rewind the Iterator to the first element
157
     * @link http://php.net/manual/en/iterator.rewind.php
158
     * @return void Any returned value is ignored.
159
     */
160 17
    public function rewind()
161
    {
162 17
        $this->items->rewind();
163 17
    }
164
165
    /**
166
     * @param  ItemInterface $item
167
     * @return $this
168
     */
169 26
    public function add(ItemInterface $item) : FeedInterface
170
    {
171 26
        $this->items->append($item);
172
173 26
        return $this;
174
    }
175
176
    public function addNS(string $ns, string $dtd) : FeedInterface
177
    {
178
        $this->ns->offsetSet($ns, $dtd);
179
180
        return $this;
181
    }
182
183 4
    public function getNS() : \ArrayIterator
184
    {
185 4
        return $this->ns;
186
    }
187
188
    /**
189
     * @return ItemInterface
190
     */
191 10
    public function newItem() : ItemInterface
192
    {
193 10
        return new Item();
194
    }
195
196
    /**
197
     * @return array
198
     */
199 1
    public function jsonSerialize() : array
200
    {
201 1
        return $this->toArray();
202
    }
203
204
    /**
205
     * @return array
206
     */
207 3
    public function toArray() : array
208
    {
209 3
        $items = [];
210
211 3
        foreach ($this->items as $item) {
212 3
            $items[] = $item->toArray();
213
        }
214
215 3
        $properties = parent::toArray();
216 3
        $properties['items'] = $items;
217
218 3
        return $properties;
219
    }
220
221
    /**
222
     * @return int
223
     */
224 1
    public function count() : int
225
    {
226 1
        return count($this->items);
227
    }
228
}
229