Completed
Push — dev-master ( 27ac47...826fb6 )
by Derek Stephen
14:04 queued 06:45
created

Init::controller()   A

Complexity

Conditions 5
Paths 16

Size

Total Lines 20

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 13.575

Importance

Changes 0
Metric Value
dl 0
loc 20
ccs 3
cts 10
cp 0.3
rs 9.2888
c 0
b 0
f 0
cc 5
nc 16
nop 2
crap 13.575
1
<?php
2
3
namespace Bone\Mvc\Controller;
4
5
use Barnacle\Container;
6
use Bone\I18n\I18nAwareInterface;
7
use Bone\Mvc\Controller;
8
use Bone\Mvc\View\PlatesEngine;
9
use Bone\Server\SessionAwareInterface;
10
use Bone\Server\SiteConfig;
11
use Bone\Server\SiteConfigAwareInterface;
12
use Bone\View\ViewAwareInterface;
13
use Del\SessionManager;
14
use Laminas\I18n\Translator\Translator;
15
16
class Init
17
{
18
    /**
19
     * @param Controller $controller
20
     * @param Container $container
21
     * @return Controller
22
     */
23 1
    public static function controller(Controller $controller, Container $container): Controller
24
    {
25 1
        if ($controller instanceof I18nAwareInterface) {
26 1
            $controller->setTranslator($container->get(Translator::class));
27
        }
28
29
        if ($controller instanceof ViewAwareInterface) {
30
            $controller->setView($container->get(PlatesEngine::class));
31
        }
32
33
        if ($controller instanceof SiteConfigAwareInterface) {
34
            $controller->setSiteConfig($container->get(SiteConfig::class));
35
        }
36
37
        if ($controller instanceof SessionAwareInterface) {
38
            $controller->setSession($container->get(SessionManager::class));
39
        }
40
41
        return $controller;
42
    }
43
}