SymfonySitemapBuilder   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 54
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 4
lcom 1
cbo 2
dl 0
loc 54
ccs 21
cts 21
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
A build() 0 26 3
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\Sitemap;
11
12
use GpsLab\Component\Sitemap\Builder\Url\UrlBuilderCollection;
13
use GpsLab\Component\Sitemap\Stream\Stream;
14
use Symfony\Component\Console\Style\SymfonyStyle;
15
16
class SymfonySitemapBuilder
17
{
18
    /**
19
     * @var UrlBuilderCollection
20
     */
21
    private $builders;
22
23
    /**
24
     * @var Stream
25
     */
26
    private $stream;
27
28
    /**
29
     * @param UrlBuilderCollection $builders
30
     * @param Stream               $stream
31
     */
32 1
    public function __construct(UrlBuilderCollection $builders, Stream $stream)
33
    {
34 1
        $this->builders = $builders;
35 1
        $this->stream = $stream;
36 1
    }
37
38
    /**
39
     * @param SymfonyStyle $io
40
     *
41
     * @return int
42
     */
43 1
    public function build(SymfonyStyle $io)
44
    {
45 1
        $total_builders = count($this->builders);
46 1
        $this->stream->open();
47
48 1
        foreach ($this->builders as $i => $builder) {
49 1
            $io->section(sprintf(
50 1
                '[%d/%d] Build by <info>%s</info> builder',
51 1
                $i + 1,
52 1
                $total_builders,
53 1
                $builder->getName()
54
            ));
55
56 1
            $io->progressStart(count($builder));
57 1
            foreach ($builder as $url) {
58 1
                $this->stream->push($url);
59 1
                $io->progressAdvance();
60
            }
61 1
            $io->progressFinish();
62
        }
63
64 1
        $total_urls = count($this->stream);
65 1
        $this->stream->close();
66
67 1
        return $total_urls;
68
    }
69
}
70