UrlBuilderCollection::__construct()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 6
ccs 4
cts 4
cp 1
rs 10
c 0
b 0
f 0
cc 2
nc 2
nop 1
crap 2
1
<?php
2
/**
3
 * GpsLab component.
4
 *
5
 * @author    Peter Gribanov <[email protected]>
6
 * @copyright Copyright (c) 2011, Peter Gribanov
7
 * @license   http://opensource.org/licenses/MIT
8
 */
9
10
namespace GpsLab\Component\Sitemap\Builder\Url;
11
12
/**
13
 * @phpstan-implements \IteratorAggregate<UrlBuilder>
14
 */
15
class UrlBuilderCollection implements \Countable, \IteratorAggregate
16
{
17
    /**
18
     * @var UrlBuilder[]
19
     */
20
    private $builders = [];
21
22
    /**
23
     * @param UrlBuilder[] $builders
24
     */
25 3
    public function __construct(array $builders = [])
26
    {
27 3
        foreach ($builders as $builder) {
28 1
            $this->add($builder);
29
        }
30 3
    }
31
32
    /**
33
     * @param UrlBuilder $builder
34
     */
35 1
    public function add(UrlBuilder $builder)
36
    {
37 1
        $this->builders[] = $builder;
38 1
    }
39
40
    /**
41
     * @return int
42
     */
43 1
    public function count()
44
    {
45 1
        return count($this->builders);
46
    }
47
48
    /**
49
     * @return \Generator|UrlBuilder[]
50
     * @phpstan-return \Generator<UrlBuilder>
51
     */
52 1
    public function getIterator()
53
    {
54 1
        foreach ($this->builders as $builder) {
55 1
            yield $builder;
56
        }
57 1
    }
58
}
59