-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.php
executable file
·39 lines (29 loc) · 1.03 KB
/
index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
require_once 'lib/bootstrap.php';
$container = \DI\Container::getContainer();
$view = $container::getService('view');
$view->setViewsDir($baseDir . '/src/Application/View');
$view->setLayout($baseDir . '/src/Application/View/base_layout.php');
$page = $request->getQueryParameter("page");
if (empty($page) || !$router->check($page)) {
/** @var \Http\Response $response */
$response = $container::getService('response');
$response
->setStatusCode(404)
->setTemplate('Errors/404.php')
->render()
->send();
die;
}
$controller_ = $router->getAction($page);
if ($page != 'login' && !$session->hasData('user')) {
$response->redirect($request->getUri().'?page=login');
}
$controller = new $controller_[0];
$action = $controller_[1];
$user = \DI\Container::getService('user');
$controllerResponse = call_user_func([$controller, $action]);
if (!$controllerResponse instanceof \Http\Response) {
throw new Exception('Controller mast return a Response object.');
}
$controllerResponse->send();