Completed
Push — master ( ed993b...01ce69 )
by
unknown
29s
created

Controller   A

Complexity

Total Complexity 11

Size/Duplication

Total Lines 113
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 11
lcom 1
cbo 1
dl 0
loc 113
ccs 0
cts 50
cp 0
rs 10
c 0
b 0
f 0

11 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A setConfig() 0 4 1
A setView() 0 9 1
A getConfig() 0 4 1
A setRouter() 0 4 1
A getRouter() 0 4 1
A setRequest() 0 4 1
A getRequest() 0 4 1
A setContainer() 0 4 1
A getContainer() 0 4 1
A loadModule() 0 13 1
1
<?php
2
3
namespace Zewa;
4
5
/**
6
 * Abstract class for controller extension
7
 *
8
 * @author Zechariah Walden<zech @ zewadesign.com>
9
 */
10
abstract class Controller
11
{
12
    /**
13
     * System configuration
14
     *
15
     * @var Config
16
     */
17
    protected $configuration;
18
19
    /**
20
     * Instantiated router class pointer
21
     *
22
     * @var Router
23
     */
24
    protected $router;
25
26
    /**
27
     * Instantiated request class pointer
28
     *
29
     * @var Request
30
     */
31
    protected $request;
32
33
    /**
34
     * League\Container
35
     *
36
     * @var DIContainer
37
     */
38
    protected $container;
39
40
    /**
41
     * Instantiated output class pointer
42
     *
43
     * @var object
44
     */
45
    protected $output;
46
47
    /**
48
     * @var View
49
     */
50
    protected $view;
51
52
    /**
53
     * Load up some basic configuration settings.
54
     */
55
    public function __construct()
56
    {
57
    }
58
59
    public function setView(View $view)
60
    {
61
        $this->view = $view;
62
        //@TODO instead of "getview" this needs to be "setResponse" -- set response should receive a view,
63
        //views probably don't need config, router, or request -- but they need access
64
        //to methods inside of there.
65
        // I'm not sure how I want to handle this yet.
66
//        return new View($this->configuration, $this->router, $this->request);
67
    }
68
69
    public function setConfig(Config $config)
70
    {
71
        $this->configuration = $config;
72
    }
73
74
    public function getConfig() : Config
75
    {
76
        return $this->configuration;
77
    }
78
79
    public function setRouter(Router $router)
80
    {
81
        $this->router = $router;
82
    }
83
84
    public function getRouter() : Router
85
    {
86
        return $this->router;
87
    }
88
89
    public function setRequest(Request $request)
90
    {
91
        $this->request = $request;
92
    }
93
94
    public function getRequest() : Request
95
    {
96
        return $this->request;
97
    }
98
99
    public function setContainer(DIContainer $container)
100
    {
101
        $this->container = $container;
102
    }
103
104
    public function getContainer() : DIContainer
105
    {
106
        return $this->container;
107
    }
108
109
    public function loadModule($name)
110
    {
111
        $name = ucfirst(strtolower($name));
112
        $module = $this->container->resolve('\Zewa\App\Modules\\' . $name);
113
114
        $module->setRequest($this->request);
115
        $module->setRouter($this->router);
116
        $module->setConfig($this->configuration);
117
        $module->setContainer($this->container);
118
        $module->setView($this->view);
119
120
        return $module;
121
    }
122
}
123