Passed
Push — master ( d74cf0...1b179d )
by Rougin
02:10
created

ZapheusProvider   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 33
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 33
ccs 9
cts 9
cp 1
rs 10
wmc 3

2 Methods

Rating   Name   Duplication   Size   Complexity  
A register() 0 3 1
A merge() 0 11 2
1
<?php
2
3
namespace App\Zapheus;
4
5
use Zapheus\Container\WritableInterface;
6
use Zapheus\Provider\ProviderInterface;
7
use Zapheus\Routing\RouterInterface;
8
9
/**
10
 * Zapheus Provider
11
 *
12
 * @package App
13
 * @author  Rougin Royce Gutib <[email protected]>
14
 */
15
class ZapheusProvider implements ProviderInterface
16
{
17
    const COMPOSITE = 'App\Zapheus\CompositeRouter';
18
19
    /**
20
     * Registers the bindings in the container.
21
     *
22
     * @param  \Zapheus\Container\WritableInterface $container
23
     * @return \Zapheus\Container\ContainerInterface
24
     */
25 9
    public function register(WritableInterface $container)
26
    {
27 9
        return self::merge($container, new RouteCollection);
28
    }
29
30
    /**
31
     * Merges two or more Routing\RouterInterface instances.
32
     *
33
     * @param  \Zapheus\Container\WritableInterface $container
34
     * @param  \Zapheus\Routing\RouterInterface     $router
35
     * @return \Zapheus\Container\WritableInterface
36
     */
37 9
    public static function merge(WritableInterface $container, RouterInterface $router)
38
    {
39 9
        if ($container->has(self::COMPOSITE)) {
40 9
            $composite = $container->get(self::COMPOSITE);
41
42 9
            $composite->merge($router);
43 9
        } else {
44 9
            $composite = (new CompositeRouter)->merge($router);
45
        }
46
47 9
        return $container->set(self::COMPOSITE, $composite);
48
    }
49
}
50