Factory   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 33
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 6

Importance

Changes 0
Metric Value
wmc 6
lcom 1
cbo 6
dl 0
loc 33
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
B __construct() 0 7 5
A create() 0 17 1
1
<?php
2
3
namespace Knp\RadBundle\Routing\Conventional;
4
5
use Knp\RadBundle\Routing\Conventional\Generator;
6
use Symfony\Component\Routing\Route;
7
8
class Factory
9
{
10
    private $patterns;
11
    private $controllerNames;
12
    private $routes;
13
    private $viewNames;
14
15
    public function __construct(Generator\Pattern $patterns = null, Generator\ControllerName $controllerNames = null, Generator\RouteName $routes = null, Generator\ViewName $viewNames = null)
16
    {
17
        $this->patterns        = $patterns ?: new Generator\Pattern;
18
        $this->controllerNames = $controllerNames ?: new Generator\ControllerName;
19
        $this->routes          = $routes ?: new Generator\RouteName;
20
        $this->viewNames       = $viewNames ?: new Generator\ViewName;
21
    }
22
23
    public function create(Config $config)
24
    {
25
        $name = $this->routes->generate($config);
26
27
        return array($name, new Route(
28
            $this->patterns->generate($config),
29
            array_merge(array(
30
                '_controller' => $this->controllerNames->generate($config),
31
                'view'       => $this->viewNames->generate($config),
32
            ), $config->getDefaults()),
33
            $config->getRequirements(),
34
            array(), // options
35
            null, // host
36
            array(), // schemes
37
            $config->getMethods()
38
        ));
39
    }
40
}
41