Completed
Push — master ( d1c5d4...5d4ad8 )
by Sinnarasa
05:27
created
src/Routing/Matcher/ArrayMatcher.php 2 patches
Spacing   +47 added lines, -47 removed lines patch added patch discarded remove patch
@@ -25,7 +25,7 @@  discard block
 block discarded – undo
25 25
     /**
26 26
      * @var array
27 27
      */
28
-    private $resolver = ['isClosureAndTemplate','isControllerAndTemplate','isTemplate'];
28
+    private $resolver = ['isClosureAndTemplate', 'isControllerAndTemplate', 'isTemplate'];
29 29
 
30 30
     /**
31 31
      * @var array
@@ -34,8 +34,8 @@  discard block
 block discarded – undo
34 34
         'isClosure' => 'JetFire\Routing\Dispatcher\ClosureDispatcher',
35 35
         'isController' => 'JetFire\Routing\Dispatcher\ControllerDispatcher',
36 36
         'isTemplate' => 'JetFire\Routing\Dispatcher\TemplateDispatcher',
37
-        'isControllerAndTemplate' => ['JetFire\Routing\Dispatcher\ControllerDispatcher','JetFire\Routing\Dispatcher\TemplateDispatcher'],
38
-        'isClosureAndTemplate' => ['JetFire\Routing\Dispatcher\ClosureDispatcher','JetFire\Routing\Dispatcher\TemplateDispatcher'],
37
+        'isControllerAndTemplate' => ['JetFire\Routing\Dispatcher\ControllerDispatcher', 'JetFire\Routing\Dispatcher\TemplateDispatcher'],
38
+        'isClosureAndTemplate' => ['JetFire\Routing\Dispatcher\ClosureDispatcher', 'JetFire\Routing\Dispatcher\TemplateDispatcher'],
39 39
     ];
40 40
 
41 41
     /**
@@ -49,14 +49,14 @@  discard block
 block discarded – undo
49 49
     /**
50 50
      * @param array $resolver
51 51
      */
52
-    public function setResolver($resolver = []){
52
+    public function setResolver($resolver = []) {
53 53
         $this->resolver = $resolver;
54 54
     }
55 55
 
56 56
     /**
57 57
      * @param string $resolver
58 58
      */
59
-    public function addResolver($resolver){
59
+    public function addResolver($resolver) {
60 60
         $this->resolver[] = $resolver;
61 61
     }
62 62
 
@@ -71,7 +71,7 @@  discard block
 block discarded – undo
71 71
     /**
72 72
      * @param array $dispatcher
73 73
      */
74
-    public function setDispatcher($dispatcher = []){
74
+    public function setDispatcher($dispatcher = []) {
75 75
         $this->dispatcher = $dispatcher;
76 76
     }
77 77
 
@@ -81,7 +81,7 @@  discard block
 block discarded – undo
81 81
      * @return mixed|void
82 82
      * @internal param array $dispatcher
83 83
      */
84
-    public function addDispatcher($method,$class){
84
+    public function addDispatcher($method, $class) {
85 85
         $this->dispatcher[$method] = $class;
86 86
     }
87 87
 
@@ -92,17 +92,17 @@  discard block
 block discarded – undo
92 92
     {
93 93
         $this->request = [];
94 94
         for ($i = 0; $i < $this->router->collection->countRoutes; ++$i) {
95
-            $this->request['prefix'] = ($this->router->collection->getRoutes('prefix_' . $i) != '') ? $this->router->collection->getRoutes('prefix_' . $i) : '';
96
-            $this->request['subdomain'] = ($this->router->collection->getRoutes('subdomain_' . $i) != '') ? $this->router->collection->getRoutes('subdomain_' . $i) : '';
97
-            foreach ($this->router->collection->getRoutes('routes_' . $i) as $route => $params) {
95
+            $this->request['prefix'] = ($this->router->collection->getRoutes('prefix_'.$i) != '') ? $this->router->collection->getRoutes('prefix_'.$i) : '';
96
+            $this->request['subdomain'] = ($this->router->collection->getRoutes('subdomain_'.$i) != '') ? $this->router->collection->getRoutes('subdomain_'.$i) : '';
97
+            foreach ($this->router->collection->getRoutes('routes_'.$i) as $route => $params) {
98 98
                 $this->request['params'] = $params;
99 99
                 $this->request['collection_index'] = $i;
100
-                if($this->checkSubdomain($route)) {
100
+                if ($this->checkSubdomain($route)) {
101 101
                     $route = strstr($route, '/');
102
-                    $this->request['route'] = preg_replace_callback('#:([\w]+)#', [$this, 'paramMatch'], '/' . trim(trim($this->request['prefix'], '/') . '/' . trim($route, '/'), '/'));
103
-                    if ($this->routeMatch('#^' . $this->request['route'] . '$#')) {
102
+                    $this->request['route'] = preg_replace_callback('#:([\w]+)#', [$this, 'paramMatch'], '/'.trim(trim($this->request['prefix'], '/').'/'.trim($route, '/'), '/'));
103
+                    if ($this->routeMatch('#^'.$this->request['route'].'$#')) {
104 104
                         $this->setCallback();
105
-                        if(!is_null($response = $this->generateTarget())) return $response;
105
+                        if (!is_null($response = $this->generateTarget())) return $response;
106 106
                     }
107 107
                 }
108 108
             }
@@ -114,19 +114,19 @@  discard block
 block discarded – undo
114 114
      * @param $route
115 115
      * @return bool
116 116
      */
117
-    private function checkSubdomain($route){
118
-        $url = (isset($_SERVER['REQUEST_SCHEME']) ? $_SERVER['REQUEST_SCHEME'] : 'http') . '://' . ($host = (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME']));
117
+    private function checkSubdomain($route) {
118
+        $url = (isset($_SERVER['REQUEST_SCHEME']) ? $_SERVER['REQUEST_SCHEME'] : 'http').'://'.($host = (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME']));
119 119
         $domain = $this->router->collection->getDomain($url);
120
-        if(!empty($this->request['subdomain']) && $route[0] == '/') $route = trim($this->request['subdomain'],'.').'.'.$domain.$route;
121
-        if($route[0] == '/'){
120
+        if (!empty($this->request['subdomain']) && $route[0] == '/') $route = trim($this->request['subdomain'], '.').'.'.$domain.$route;
121
+        if ($route[0] == '/') {
122 122
             return ($host != $domain) ? false : true;
123
-        }elseif($route[0] != '/' && $host != $domain){
123
+        }elseif ($route[0] != '/' && $host != $domain) {
124 124
             $route = substr($route, 0, strpos($route, "/"));
125 125
             $route = str_replace('{host}', $domain, $route);
126 126
             $route = preg_replace_callback('#{subdomain}#', [$this, 'subdomainMatch'], $route);
127
-            if (preg_match('#^' . $route . '$#', $host, $this->request['called_subdomain'])) {
127
+            if (preg_match('#^'.$route.'$#', $host, $this->request['called_subdomain'])) {
128 128
                 $this->request['called_subdomain'] = array_shift($this->request['called_subdomain']);
129
-                $this->request['subdomain'] = str_replace('.'.$domain,'',$host);
129
+                $this->request['subdomain'] = str_replace('.'.$domain, '', $host);
130 130
                 return true;
131 131
             }
132 132
         }
@@ -139,7 +139,7 @@  discard block
 block discarded – undo
139 139
     private function subdomainMatch()
140 140
     {
141 141
         if (is_array($this->request['params']) && isset($this->request['params']['subdomain'])) {
142
-            return '(' . $this->request['params']['subdomain'] . ')';
142
+            return '('.$this->request['params']['subdomain'].')';
143 143
         }
144 144
         return '([^/]+)';
145 145
     }
@@ -152,7 +152,7 @@  discard block
 block discarded – undo
152 152
     {
153 153
         if (is_array($this->request['params']) && isset($this->request['params']['arguments'][$match[1]])) {
154 154
             $this->request['params']['arguments'][$match[1]] = str_replace('(', '(?:', $this->request['params']['arguments'][$match[1]]);
155
-            return '(' . $this->request['params']['arguments'][$match[1]] . ')';
155
+            return '('.$this->request['params']['arguments'][$match[1]].')';
156 156
         }
157 157
         return '([^/]+)';
158 158
     }
@@ -180,7 +180,7 @@  discard block
 block discarded – undo
180 180
      */
181 181
     private function generateTarget()
182 182
     {
183
-        if($this->validMethod()) {
183
+        if ($this->validMethod()) {
184 184
             foreach ($this->resolver as $resolver) {
185 185
                 if (is_array($target = call_user_func_array([$this, $resolver], [$this->router->route->getCallback()]))) {
186 186
                     $this->setTarget($target);
@@ -199,7 +199,7 @@  discard block
 block discarded – undo
199 199
     /**
200 200
      * @param array $target
201 201
      */
202
-    public function setTarget($target = []){
202
+    public function setTarget($target = []) {
203 203
         $index = isset($this->request['collection_index']) ? $this->request['collection_index'] : 0;
204 204
         $this->router->route->setDetail($this->request);
205 205
         $this->router->route->setTarget($target);
@@ -210,9 +210,9 @@  discard block
 block discarded – undo
210 210
     /**
211 211
      *
212 212
      */
213
-    private function setCallback(){
213
+    private function setCallback() {
214 214
         if (isset($this->request['params'])) {
215
-            if(is_callable($this->request['params']))
215
+            if (is_callable($this->request['params']))
216 216
                 $this->router->route->setCallback($this->request['params']);
217 217
             else {
218 218
                 (is_array($this->request['params']) && isset($this->request['params']['use']))
@@ -229,7 +229,7 @@  discard block
 block discarded – undo
229 229
      */
230 230
     public function validMethod()
231 231
     {
232
-        if(is_callable($this->request['params']))return true;
232
+        if (is_callable($this->request['params']))return true;
233 233
         if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
234 234
             return (isset($this->request['params']['ajax']) && $this->request['params']['ajax'] === true) ? true : false;
235 235
         $method = (isset($this->request['params']['method'])) ? $this->request['params']['method'] : ['GET'];
@@ -241,10 +241,10 @@  discard block
 block discarded – undo
241 241
      * @return array|bool
242 242
      * @throws \Exception
243 243
      */
244
-    public function isClosureAndTemplate($callback){
245
-        if(is_array($cls = $this->isClosure($callback))) {
244
+    public function isClosureAndTemplate($callback) {
245
+        if (is_array($cls = $this->isClosure($callback))) {
246 246
             if (is_array($this->request['params']) && isset($this->request['params']['template']) && is_array($tpl = $this->isTemplate($this->request['params']['template']))) {
247
-                return array_merge(array_merge($cls, $tpl),[
247
+                return array_merge(array_merge($cls, $tpl), [
248 248
                     'dispatcher' => $this->dispatcher['isClosureAndTemplate']
249 249
                 ]);
250 250
             }
@@ -258,10 +258,10 @@  discard block
 block discarded – undo
258 258
      * @return array|bool
259 259
      * @throws \Exception
260 260
      */
261
-    public function isControllerAndTemplate($callback){
262
-        if(is_array($ctrl = $this->isController($callback))) {
261
+    public function isControllerAndTemplate($callback) {
262
+        if (is_array($ctrl = $this->isController($callback))) {
263 263
             if (is_array($this->request['params']) && isset($this->request['params']['template']) && is_array($tpl = $this->isTemplate($this->request['params']['template']))) {
264
-                return array_merge(array_merge($ctrl, $tpl),[
264
+                return array_merge(array_merge($ctrl, $tpl), [
265 265
                     'dispatcher' => $this->dispatcher['isControllerAndTemplate']
266 266
                 ]);
267 267
             }
@@ -296,19 +296,19 @@  discard block
 block discarded – undo
296 296
         if (is_string($callback) && strpos($callback, '@') !== false) {
297 297
             $routes = explode('@', $callback);
298 298
             if (!isset($routes[1])) $routes[1] = 'index';
299
-            if ($routes[1] == '{method}'){
300
-                $this->request['parameters'] = explode('/',str_replace(str_replace('*','',$this->request['route']),'',$this->router->route->getUrl()));
299
+            if ($routes[1] == '{method}') {
300
+                $this->request['parameters'] = explode('/', str_replace(str_replace('*', '', $this->request['route']), '', $this->router->route->getUrl()));
301 301
                 $routes[1] = $this->request['parameters'][0];
302 302
                 array_shift($this->request['parameters']);
303
-                if(preg_match('/[A-Z]/', $routes[1])) return false;
304
-                $routes[1] = lcfirst(str_replace('-','',ucwords($routes[1],'-')));
303
+                if (preg_match('/[A-Z]/', $routes[1])) return false;
304
+                $routes[1] = lcfirst(str_replace('-', '', ucwords($routes[1], '-')));
305 305
             }
306 306
             $index = isset($this->request['collection_index']) ? $this->request['collection_index'] : 0;
307 307
             $class = (class_exists($routes[0]))
308 308
                 ? $routes[0]
309
-                : $this->router->collection->getRoutes()['ctrl_namespace_' . $index] . $routes[0];
309
+                : $this->router->collection->getRoutes()['ctrl_namespace_'.$index].$routes[0];
310 310
             if (!class_exists($class))
311
-                throw new \Exception('Class "' . $class . '." is not found');
311
+                throw new \Exception('Class "'.$class.'." is not found');
312 312
             if (method_exists($class, $routes[1])) {
313 313
                 return [
314 314
                     'dispatcher' => $this->dispatcher['isController'],
@@ -318,7 +318,7 @@  discard block
 block discarded – undo
318 318
                 ];
319 319
             }
320 320
             if (!strpos($callback, '{method}') !== false)
321
-                throw new \Exception('The required method "' . $routes[1] . '" is not found in "' . $class . '"');
321
+                throw new \Exception('The required method "'.$routes[1].'" is not found in "'.$class.'"');
322 322
         }
323 323
         return false;
324 324
     }
@@ -330,25 +330,25 @@  discard block
 block discarded – undo
330 330
      */
331 331
     public function isTemplate($callback)
332 332
     {
333
-        if(is_string($callback) && strpos($callback, '@') === false) {
333
+        if (is_string($callback) && strpos($callback, '@') === false) {
334 334
             $path = trim($callback, '/');
335 335
             $extension = substr(strrchr($path, "."), 1);
336 336
             $index = isset($this->request['collection_index']) ? $this->request['collection_index'] : 0;
337
-            $viewDir = $this->router->collection->getRoutes('view_dir_' . $index);
337
+            $viewDir = $this->router->collection->getRoutes('view_dir_'.$index);
338 338
             $target = null;
339
-            if (in_array('.' . $extension, $this->router->getConfig()['templateExtension']) && (is_file($fullPath = $viewDir . $path) || is_file($fullPath = $path)))
339
+            if (in_array('.'.$extension, $this->router->getConfig()['templateExtension']) && (is_file($fullPath = $viewDir.$path) || is_file($fullPath = $path)))
340 340
                 $target = $fullPath;
341 341
             else {
342 342
                 foreach ($this->router->getConfig()['templateExtension'] as $ext) {
343
-                    if (is_file($fullPath = $viewDir . $path . $ext) || is_file($fullPath = $path . $ext)) {
343
+                    if (is_file($fullPath = $viewDir.$path.$ext) || is_file($fullPath = $path.$ext)) {
344 344
                         $target = $fullPath;
345 345
                         $extension = substr(strrchr($ext, "."), 1);
346 346
                         break;
347 347
                     }
348 348
                 }
349 349
             }
350
-            if(is_null($target))
351
-                throw new \Exception('Template file "' . $path . '" is not found in "' . $viewDir . '"');
350
+            if (is_null($target))
351
+                throw new \Exception('Template file "'.$path.'" is not found in "'.$viewDir.'"');
352 352
             return [
353 353
                 'dispatcher' => $this->dispatcher['isTemplate'],
354 354
                 'template'   => $target,
Please login to merge, or discard this patch.
Braces   +46 added lines, -26 removed lines patch added patch discarded remove patch
@@ -102,7 +102,9 @@  discard block
 block discarded – undo
102 102
                     $this->request['route'] = preg_replace_callback('#:([\w]+)#', [$this, 'paramMatch'], '/' . trim(trim($this->request['prefix'], '/') . '/' . trim($route, '/'), '/'));
103 103
                     if ($this->routeMatch('#^' . $this->request['route'] . '$#')) {
104 104
                         $this->setCallback();
105
-                        if(!is_null($response = $this->generateTarget())) return $response;
105
+                        if(!is_null($response = $this->generateTarget())) {
106
+                            return $response;
107
+                        }
106 108
                     }
107 109
                 }
108 110
             }
@@ -117,10 +119,12 @@  discard block
 block discarded – undo
117 119
     private function checkSubdomain($route){
118 120
         $url = (isset($_SERVER['REQUEST_SCHEME']) ? $_SERVER['REQUEST_SCHEME'] : 'http') . '://' . ($host = (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME']));
119 121
         $domain = $this->router->collection->getDomain($url);
120
-        if(!empty($this->request['subdomain']) && $route[0] == '/') $route = trim($this->request['subdomain'],'.').'.'.$domain.$route;
122
+        if(!empty($this->request['subdomain']) && $route[0] == '/') {
123
+            $route = trim($this->request['subdomain'],'.').'.'.$domain.$route;
124
+        }
121 125
         if($route[0] == '/'){
122 126
             return ($host != $domain) ? false : true;
123
-        }elseif($route[0] != '/' && $host != $domain){
127
+        } elseif($route[0] != '/' && $host != $domain){
124 128
             $route = substr($route, 0, strpos($route, "/"));
125 129
             $route = str_replace('{host}', $domain, $route);
126 130
             $route = preg_replace_callback('#{subdomain}#', [$this, 'subdomainMatch'], $route);
@@ -165,8 +169,9 @@  discard block
 block discarded – undo
165 169
     {
166 170
         if (substr($this->request['route'], -1) == '*') {
167 171
             $pos = strpos($this->request['route'], '*');
168
-            if (substr($this->router->route->getUrl(), 0, $pos) == substr($this->request['route'], 0, $pos) && isset($this->request['params']))
169
-                return true;
172
+            if (substr($this->router->route->getUrl(), 0, $pos) == substr($this->request['route'], 0, $pos) && isset($this->request['params'])) {
173
+                            return true;
174
+            }
170 175
         }
171 176
         if (preg_match($regex, $this->router->route->getUrl(), $this->request['parameters'])) {
172 177
             array_shift($this->request['parameters']);
@@ -184,8 +189,9 @@  discard block
 block discarded – undo
184 189
             foreach ($this->resolver as $resolver) {
185 190
                 if (is_array($target = call_user_func_array([$this, $resolver], [$this->router->route->getCallback()]))) {
186 191
                     $this->setTarget($target);
187
-                    if ($this->router->middleware->globalMiddleware() === false || $this->router->middleware->blockMiddleware() === false || $this->router->middleware->classMiddleware() === false || $this->router->middleware->routeMiddleware() === false)
188
-                        return null;
192
+                    if ($this->router->middleware->globalMiddleware() === false || $this->router->middleware->blockMiddleware() === false || $this->router->middleware->classMiddleware() === false || $this->router->middleware->routeMiddleware() === false) {
193
+                                            return null;
194
+                    }
189 195
                     $this->router->response->setStatusCode(202);
190 196
                     return true;
191 197
                 }
@@ -212,14 +218,18 @@  discard block
 block discarded – undo
212 218
      */
213 219
     private function setCallback(){
214 220
         if (isset($this->request['params'])) {
215
-            if(is_callable($this->request['params']))
216
-                $this->router->route->setCallback($this->request['params']);
217
-            else {
221
+            if(is_callable($this->request['params'])) {
222
+                            $this->router->route->setCallback($this->request['params']);
223
+            } else {
218 224
                 (is_array($this->request['params']) && isset($this->request['params']['use']))
219 225
                     ? $this->router->route->setCallback($this->request['params']['use'])
220 226
                     : $this->router->route->setCallback($this->request['params']);
221
-                if (isset($this->request['params']['name'])) $this->router->route->setName($this->request['params']['name']);
222
-                if (isset($this->request['params']['method'])) $this->request['params']['method'] = is_array($this->request['params']['method']) ? $this->request['params']['method'] : [$this->request['params']['method']];
227
+                if (isset($this->request['params']['name'])) {
228
+                    $this->router->route->setName($this->request['params']['name']);
229
+                }
230
+                if (isset($this->request['params']['method'])) {
231
+                    $this->request['params']['method'] = is_array($this->request['params']['method']) ? $this->request['params']['method'] : [$this->request['params']['method']];
232
+                }
223 233
             }
224 234
         }
225 235
     }
@@ -229,9 +239,12 @@  discard block
 block discarded – undo
229 239
      */
230 240
     public function validMethod()
231 241
     {
232
-        if(is_callable($this->request['params']))return true;
233
-        if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
234
-            return (isset($this->request['params']['ajax']) && $this->request['params']['ajax'] === true) ? true : false;
242
+        if(is_callable($this->request['params'])) {
243
+            return true;
244
+        }
245
+        if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
246
+                    return (isset($this->request['params']['ajax']) && $this->request['params']['ajax'] === true) ? true : false;
247
+        }
235 248
         $method = (isset($this->request['params']['method'])) ? $this->request['params']['method'] : ['GET'];
236 249
         return (in_array($this->router->route->getMethod(), $method)) ? true : false;
237 250
     }
@@ -295,20 +308,25 @@  discard block
 block discarded – undo
295 308
     {
296 309
         if (is_string($callback) && strpos($callback, '@') !== false) {
297 310
             $routes = explode('@', $callback);
298
-            if (!isset($routes[1])) $routes[1] = 'index';
311
+            if (!isset($routes[1])) {
312
+                $routes[1] = 'index';
313
+            }
299 314
             if ($routes[1] == '{method}'){
300 315
                 $this->request['parameters'] = explode('/',str_replace(str_replace('*','',$this->request['route']),'',$this->router->route->getUrl()));
301 316
                 $routes[1] = $this->request['parameters'][0];
302 317
                 array_shift($this->request['parameters']);
303
-                if(preg_match('/[A-Z]/', $routes[1])) return false;
318
+                if(preg_match('/[A-Z]/', $routes[1])) {
319
+                    return false;
320
+                }
304 321
                 $routes[1] = lcfirst(str_replace('-','',ucwords($routes[1],'-')));
305 322
             }
306 323
             $index = isset($this->request['collection_index']) ? $this->request['collection_index'] : 0;
307 324
             $class = (class_exists($routes[0]))
308 325
                 ? $routes[0]
309 326
                 : $this->router->collection->getRoutes()['ctrl_namespace_' . $index] . $routes[0];
310
-            if (!class_exists($class))
311
-                throw new \Exception('Class "' . $class . '." is not found');
327
+            if (!class_exists($class)) {
328
+                            throw new \Exception('Class "' . $class . '." is not found');
329
+            }
312 330
             if (method_exists($class, $routes[1])) {
313 331
                 return [
314 332
                     'dispatcher' => $this->dispatcher['isController'],
@@ -317,8 +335,9 @@  discard block
 block discarded – undo
317 335
                     'action' => $routes[1]
318 336
                 ];
319 337
             }
320
-            if (!strpos($callback, '{method}') !== false)
321
-                throw new \Exception('The required method "' . $routes[1] . '" is not found in "' . $class . '"');
338
+            if (!strpos($callback, '{method}') !== false) {
339
+                            throw new \Exception('The required method "' . $routes[1] . '" is not found in "' . $class . '"');
340
+            }
322 341
         }
323 342
         return false;
324 343
     }
@@ -336,9 +355,9 @@  discard block
 block discarded – undo
336 355
             $index = isset($this->request['collection_index']) ? $this->request['collection_index'] : 0;
337 356
             $viewDir = $this->router->collection->getRoutes('view_dir_' . $index);
338 357
             $target = null;
339
-            if (in_array('.' . $extension, $this->router->getConfig()['templateExtension']) && (is_file($fullPath = $viewDir . $path) || is_file($fullPath = $path)))
340
-                $target = $fullPath;
341
-            else {
358
+            if (in_array('.' . $extension, $this->router->getConfig()['templateExtension']) && (is_file($fullPath = $viewDir . $path) || is_file($fullPath = $path))) {
359
+                            $target = $fullPath;
360
+            } else {
342 361
                 foreach ($this->router->getConfig()['templateExtension'] as $ext) {
343 362
                     if (is_file($fullPath = $viewDir . $path . $ext) || is_file($fullPath = $path . $ext)) {
344 363
                         $target = $fullPath;
@@ -347,8 +366,9 @@  discard block
 block discarded – undo
347 366
                     }
348 367
                 }
349 368
             }
350
-            if(is_null($target))
351
-                throw new \Exception('Template file "' . $path . '" is not found in "' . $viewDir . '"');
369
+            if(is_null($target)) {
370
+                            throw new \Exception('Template file "' . $path . '" is not found in "' . $viewDir . '"');
371
+            }
352 372
             return [
353 373
                 'dispatcher' => $this->dispatcher['isTemplate'],
354 374
                 'template'   => $target,
Please login to merge, or discard this patch.