Completed
Push — master ( d679b5...82f2fa )
by Restu
13:49
created

Controller::initialize()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 26
Code Lines 18

Duplication

Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 0 Features 2
Metric Value
cc 1
eloc 18
c 3
b 0
f 2
nc 1
nop 2
dl 0
loc 26
rs 8.8571
1
<?php
2
namespace JayaCode\Framework\Core\Controller;
3
4
use JayaCode\Framework\Core\Http\Request;
5
use JayaCode\Framework\Core\Http\Response;
6
use Mustache_Autoloader;
7
use Mustache_Engine;
8
use Mustache_Loader_FilesystemLoader;
9
10
class Controller
11
{
12
    /**
13
     * @var Request
14
     */
15
    protected $request;
16
17
    /**
18
     * @var Response
19
     */
20
    protected $response;
21
22
    /**
23
     * @var Mustache_Engine
24
     */
25
    protected $view;
26
    /**
27
     * Controller constructor.
28
     * @param Request $request
29
     * @param Response $response
30
     */
31
    public function __construct(Request $request = null, Response $response = null)
32
    {
33
        $this->initialize($request, $response);
34
    }
35
36
    /**
37
     * @param Request|null $request
38
     * @param Response $response
39
     */
40
    public function initialize(Request $request = null, Response $response = null)
41
    {
42
        $this->request = $request;
43
        $this->response = $response;
44
45
        Mustache_Autoloader::register();
46
47
        $this->view = new Mustache_Engine(array(
48
            'template_class_prefix' => '__MyTemplates_',
49
            'cache' => dirname(__FILE__).'/tmp/cache/mustache',
50
            'cache_file_mode' => 0666, // Please, configure your umask instead of doing this :)
51
            'cache_lambda_templates' => true,
52
            'loader' => new Mustache_Loader_FilesystemLoader(__APP_DIR__.'/resource/views'),
53
            'partials_loader' => new Mustache_Loader_FilesystemLoader(__APP_DIR__.'/resource/views/partials'),
54
            'helpers' => array('i18n' => function ($text) {
0 ignored issues
show
Unused Code introduced by
The parameter $text is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
55
                // do something translatey here...
56
            }),
57
            'escape' => function ($value) {
58
                return htmlspecialchars($value, ENT_COMPAT, 'UTF-8');
59
            },
60
            'charset' => 'ISO-8859-1',
61
            'logger' => new Mustache_Logger_StreamLogger('php://stderr'),
62
            'strict_callables' => true,
63
            'pragmas' => [Mustache_Engine::PRAGMA_FILTERS],
64
        ));
65
    }
66
67
    /**
68
     * @param Response $response
69
     * @return \Symfony\Component\HttpFoundation\Response
70
     */
71
    public function out(Response $response)
72
    {
73
        return $response->send();
74
    }
75
76
    /**
77
     * @param Request|null $request
78
     * @param Response|null $response
79
     * @return Controller
80
     */
81
    public static function create(Request $request = null, Response $response = null)
82
    {
83
        return new static($request, $response);
84
    }
85
86
    /**
87
     * @return Response
88
     */
89
    public function getResponse()
90
    {
91
        return $this->response;
92
    }
93
94
    /**
95
     * @param Response $response
96
     */
97
    public function setResponse($response)
98
    {
99
        $this->response = $response;
100
    }
101
}
102