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

SimpleProvider   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 27
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 27
rs 10
c 0
b 0
f 0
wmc 5

1 Method

Rating   Name   Duplication   Size   Complexity  
B populate() 0 11 5
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
}