Passed
Push — master ( 896e22...61bd56 )
by Dāvis
03:36
created

SimpleProvider::populate()   B

Complexity

Conditions 5
Paths 2

Size

Total Lines 11
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 5
eloc 8
nc 2
nop 1
dl 0
loc 11
rs 8.8571
c 0
b 0
f 0
1
<?php
2
3
namespace Sludio\HelperBundle\Sitemap\Provider;
4
5
use Sludio\HelperBundle\Sitemap\Sitemap;
6
use Sludio\HelperBundle\Sitemap\Entity\Url;
7
8
class SimpleProvider extends AbstractProvider
9
{
10
    protected $options = [
11
        'routes' => [],
12
        'lastmod' => null,
13
        'priority' => null,
14
        'changefreq' => null,
15
    ];
16
17
    protected $defaultRoute = [
18
        'params' => [],
19
        'priority' => null,
20
        'changefreq' => null,
21
        'lastmod' => null,
22
    ];
23
24
    public function populate(Sitemap $sitemap)
25
    {
26
        foreach ($this->options['routes'] as $route) {
27
            $route = array_merge($this->defaultRoute, $route);
28
29
            $url = new Url();
30
            $url->setLoc($this->router->generate($route['name'], $route['params']));
31
            $url->setChangefreq($route['changefreq'] ?: $this->options['changefreq']);
32
            $url->setLastmod($route['lastmod'] ?: $this->options['lastmod']);
33
            $url->setPriority($route['priority'] ?: $this->options['priority']);
34
            $sitemap->add($url);
35
        }
36
    }
37
}