-
Notifications
You must be signed in to change notification settings - Fork 0
/
front-controller.php
89 lines (67 loc) · 2.48 KB
/
front-controller.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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php
/**
* Index Front Controller
*
* @noinspection DuplicatedCode - Front controller shares code with other example front controllers, ignore.
* @noinspection PhpVariableNamingConventionInspection - Short variable names are ok.
* @noinspection PhpFullyQualifiedNameUsageInspection - Ignore.
* @noinspection PhpUnhandledExceptionInspection - Allow unhandled exceptions to fall through the front controller.
*/
// Turn on strict types
declare(strict_types=1);
use Pith\Framework\PithException;
// Auto-Load
require './vendor/autoload.php';
// Add env constants
require './env.php';
// Add other constants
require './tracked-constants.php';
// Error logging
ini_set('log_errors', '1');
$php_error_log_filename = './' . PITH_PHP_ERROR_LOG_LOCATION . 'php_errors_'. date('Y-m-d') .'.log';
ini_set('error_log', $php_error_log_filename);
// error_log('Hello, errors!');
// Setup our Container
$container = new DI\Container();
// Load the Pith Dependency Injection Wrapper
$dependency_injection_wrapper = null;
try {
// Pith Framework App
$dependency_injection_wrapper = $container->get('\\Pith\\Framework\\PithDependencyInjection');
} catch (\DI\DependencyException $exception) {
throw new PithException(
'Pith Framework Exception 5009: The container encountered a \DI\DependencyException exception. Message: ' . $exception->getMessage(),
5009,
$exception
);
} catch (\DI\NotFoundException $exception) {
throw new PithException(
'Pith Framework Exception 5008: The container encountered a \DI\NotFoundException exception. Message: ' . $exception->getMessage(),
5008,
$exception
);
}
// Load Pith
$pith = null;
try {
// Pith Framework App
$pith = $dependency_injection_wrapper->container->get('\\Pith\\Framework\\PithApp');
} catch (\DI\DependencyException $exception) {
throw new PithException(
'Pith Framework Exception 5002: The container encountered a \DI\DependencyException exception. Message: ' . $exception->getMessage(),
5002,
$exception
);
} catch (\DI\NotFoundException $exception) {
throw new PithException(
'Pith Framework Exception 5001: The container encountered a \DI\NotFoundException exception. Message: ' . $exception->getMessage(),
5001,
$exception
);
}
if($pith) {
// Add route list to config
$pith->config->route_list_namespace = PITH_APP_ROUTE_LIST;
// Start
//$pith->engine->start(); // Don't start yet
}