UrlBuilderCollection   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 6
lcom 1
cbo 0
dl 0
loc 44
ccs 13
cts 13
cp 1
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 6 2
A add() 0 4 1
A count() 0 4 1
A getIterator() 0 6 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