Passed
Push — master ( bfd6a0...ca8be0 )
by Adrien
07:10
created

Bootstrap::_initAutoload()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 1
c 2
b 0
f 0
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
cc 1
nc 1
nop 0
crap 1
1
<?php
2
3
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
4
{
5
    public static $translator = null;
6
7 16
    protected function _initAutoload(): void
8
    {
9
        // Add our own action helpers
10 16
        Zend_Controller_Action_HelperBroker::addPath(APPLICATION_PATH . '/mQueue/Controller/ActionHelper', 'mQueue\\Controller\\ActionHelper\\');
11 16
    }
12
13 16
    protected function _initDoctype(): void
14
    {
15 16
        $this->bootstrap('view');
16 16
        $view = $this->getResource('view');
17
18
        // Enable our own View Helpers
19 16
        $view->addHelperPath(APPLICATION_PATH . '/mQueue/View/Helper', 'mQueue\\View\\Helper');
20 16
    }
21
22 16
    protected function _initNavigation(): void
23
    {
24 16
        $this->bootstrap('view');
25 16
        $view = $this->getResource('view');
26
27 16
        $navigation = new Zend_Navigation([
28
            [
29 16
                'label' => $view->translate('Movies'),
30 16
                'controller' => 'movie',
31 16
                'route' => 'default',
32
                'pages' => [
33
                    [
34 16
                        'label' => $view->translate('Add movie'),
35 16
                        'controller' => 'movie',
36 16
                        'action' => 'add',
37 16
                        'route' => 'default',
38
                    ],
39
                    [
40 16
                        'label' => $view->translate('Import votes from IMDb'),
41 16
                        'controller' => 'movie',
42 16
                        'action' => 'import',
43 16
                        'route' => 'default',
44
                    ],
45
                ],
46
            ],
47
            [
48 16
                'label' => $view->translate('Activity'),
49 16
                'controller' => 'activity',
50 16
                'route' => 'default',
51
            ],
52
            [
53 16
                'label' => $view->translate('Users'),
54 16
                'controller' => 'user',
55 16
                'route' => 'default',
56
            ],
57
            [
58 16
                'label' => $view->translate('FAQ'),
59 16
                'controller' => 'faq',
60 16
                'route' => 'default',
61
            ],
62
        ]);
63
64 16
        $view->navigation($navigation);
65 16
    }
66
67 16
    protected function _initSession(): void
68
    {
69 16
        Zend_Session::setOptions(['name' => 'mqueue']);
70
71 16
        if (!Zend_Session::sessionExists()) {
72
            Zend_Session::rememberMe(1 * 60 * 60 * 24 * 31 * 12); // Cookie for 1 year
73
        }
74 16
    }
75
76 16
    protected function _initLanguage(): void
77
    {
78 16
        $session = new Zend_Session_Namespace();
79
80
        // handle language switch
81 16
        if (isset($_GET['lang'])) {
82
            $session->locale = $_GET['lang'];
83
        }
84
85 16
        if (isset($session->locale)) {
86
            $locale = new Zend_Locale($session->locale);
87
        } else {
88 16
            $locale = new Zend_Locale(); // autodetect browser
89
        }
90 16
        Zend_Registry::set('Zend_Locale', $locale);
91
92 16
        $adapter = new Zend_Translate('gettext', APPLICATION_PATH . '/localization', $locale, ['scan' => Zend_Translate::LOCALE_FILENAME, 'disableNotices' => true]);
93 16
        Zend_Registry::set('Zend_Translate', $adapter);
94 16
        Zend_Form::setDefaultTranslator($adapter);
95 16
        self::$translator = $adapter;
96 16
    }
97
98 16
    protected function _initPagination(): void
99
    {
100 16
        Zend_Paginator::setDefaultScrollingStyle('Elastic');
101 16
        Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination.phtml');
102 16
    }
103
104 16
    protected function _initRoutes(): void
105
    {
106 16
        $front = Zend_Controller_Front::getInstance();
107 16
        $router = $front->getRouter();
108
109
        // Required for unit tests
110 16
        $router->addDefaultRoutes();
0 ignored issues
show
Bug introduced by
The method addDefaultRoutes() does not exist on Zend_Controller_Router_Interface. It seems like you code against a sub-type of Zend_Controller_Router_Interface such as Zend_Controller_Router_Rewrite. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

110
        $router->/** @scrutinizer ignore-call */ 
111
                 addDefaultRoutes();
Loading history...
111
112
        // A route for single id (typically view a single movie/user)
113 16
        $router->addRoute('singleid', new Zend_Controller_Router_Route(':controller/:action/:id', ['action' => 'view']));
0 ignored issues
show
Bug introduced by
The method addRoute() does not exist on Zend_Controller_Router_Interface. It seems like you code against a sub-type of Zend_Controller_Router_Interface such as Zend_Controller_Router_Rewrite. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

113
        $router->/** @scrutinizer ignore-call */ 
114
                 addRoute('singleid', new Zend_Controller_Router_Route(':controller/:action/:id', ['action' => 'view']));
Loading history...
114
115
        // A route for activities
116 16
        $router->addRoute('activity', new Zend_Controller_Router_Route('activity/*', ['controller' => 'activity', 'action' => 'index']));
117 16
        $router->addRoute('activityMovie', new Zend_Controller_Router_Route('activity/movie/:movie/*', ['controller' => 'activity', 'action' => 'index']));
118 16
        $router->addRoute('activityUser', new Zend_Controller_Router_Route('activity/user/:user/*', ['controller' => 'activity', 'action' => 'index']));
119
120
        // For backward compatibility with RSS readers we keep the old route
121 16
        $router->addRoute('activityOld', new Zend_Controller_Router_Route('activity/index/*', ['controller' => 'activity', 'action' => 'index']));
122 16
        $router->addRoute('activityMovieOld', new Zend_Controller_Router_Route('activity/index/movie/:movie/*', ['controller' => 'activity', 'action' => 'index']));
123 16
        $router->addRoute('activityUserOld', new Zend_Controller_Router_Route('activity/index/user/:user/*', ['controller' => 'activity', 'action' => 'index']));
124
125
        // Routes to define and view statuses
126 16
        $router->addRoute('status', new Zend_Controller_Router_Route_Regex('status/(\d+)/(\d)', ['controller' => 'status', 'action' => 'index'], [1 => 'movie', 2 => 'rating'], 'status/%s/%s'));
127 16
        $router->addRoute('statusView', new Zend_Controller_Router_Route_Regex('status/(\d+)', ['controller' => 'status', 'action' => 'index'], [1 => 'movie'], 'status/%s'));
128 16
    }
129
130
    /**
131
     * Add the Zend_Db_Adapter to the registry if we need to call it outside of the modules.
132
     *
133
     * @return Zend_Db_Adapter_Abstract
134
     */
135 16
    protected function _initMyDb()
136
    {
137 16
        $db = $this->getPluginResource('db')->getDbAdapter();
0 ignored issues
show
Bug introduced by
The method getDbAdapter() does not exist on Zend_Application_Resource_Resource. It seems like you code against a sub-type of Zend_Application_Resource_Resource such as Zend_Application_Resource_Db. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

137
        $db = $this->getPluginResource('db')->/** @scrutinizer ignore-call */ getDbAdapter();
Loading history...
138 16
        Zend_Registry::set('db', $db);
139
140 16
        return $db;
141
    }
142
}
143
144
/**
145
 * Global shortcut method that returns localized strings
146
 *
147
 * @param string $msgId the original string to translate
148
 *
149
 * @return string the translated string
150
 */
151
function _tr($msgId)
152
{
153 12
    return Bootstrap::$translator->translate($msgId);
154
}
155