HelloWorldController   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 56
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 5

Importance

Changes 3
Bugs 0 Features 1
Metric Value
wmc 3
c 3
b 0
f 1
lcom 1
cbo 5
dl 0
loc 56
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A show() 0 12 1
A json() 0 16 1
1
<?php
2
/**
3
 * @file
4
 * Contains \NotAFramework\App\Controllers\HelloWorldController.
5
 */
6
7
namespace NotAFramework\App\Controllers;
8
9
use NotAFramework\App\Controllers\Controller;
10
use NotAFramework\App\Render\RendererInterface;
11
12
class HelloWorldController extends Controller
13
{
14
    /**
15
     * The renderer object.
16
     *
17
     * @var RendererInterface
18
     */
19
    private $renderer;
20
21
    /**
22
     * Create a new HelloWorldController instance.
23
     *
24
     * @param RendererInterface $renderer
25
     *   Renderer object.
26
     */
27
    public function __construct(RendererInterface $renderer)
28
    {
29
        $this->renderer = $renderer;
30
    }
31
32
    /**
33
     * Basic hello world route.
34
     */
35
    public function show()
36
    {
37
        // Build out the template data.
38
        $data = [
39
            'name' => $this->request->get('name', 'stranger'),
40
        ];
41
42
        // Render the template.
43
        $html = $this->renderer->render('hello', $data);
44
45
        $this->response->setContent($html);
46
    }
47
48
    /**
49
     * Basic route returning some JSON.
50
     */
51
    public function json()
52
    {
53
        // Define some data.
54
        $data = [
55
            'foo' => 'bar',
56
            'baz' => [
57
                'qux' => 'quux',
58
            ]
59
        ];
60
61
        // Set the JSON header.
62
        $this->response->headers->set('Content-Type', 'application/json');
63
64
        // Encode the data.
65
        $this->response->setContent(json_encode($data));
66
    }
67
}
68