-
Notifications
You must be signed in to change notification settings - Fork 0
/
Bootstrap.php
73 lines (56 loc) · 1.45 KB
/
Bootstrap.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
<?php
use Phalcon\Mvc\Application;
use Phalcon\Di\FactoryDefault;
use Phalcon\Debug;
class Bootstrap extends Application
{
protected $modules;
public function __construct()
{
$this->modules = require APP_PATH . '/config/modules.php';
}
public function init()
{
$this->_registerServices();
$config = $this->getDI()['config'];
if ($config->mode == 'DEVELOPMENT') {
$debug = new Debug();
$debug->setBlacklist([
'server' => ['DB_PASSWORD'],
]);
$debug->listen();
}
/**
* Load modules
*/
$this->registerModules($this->modules);
$response = $this->handle(
$_SERVER["REQUEST_URI"]
);
$response->send();
}
private function _registerServices()
{
if (getenv('APPLICATION_ENV') !== 'production') {
$envFile = ((getenv('APPLICATION_ENV') === 'testing') ? '.env.test' : '.env');
$dotEnv = Dotenv\Dotenv::create(APP_PATH, $envFile);
$dotEnv->load();
}
$env = getenv('APPLICATION_ENV');
//env config
if (!$env) {
echo "Application environment not set";
exit;
} else {
$config = require APP_PATH . '/config/config.php';
}
$defaultModule = getenv('DEFAULT_MODULE');
$container = new FactoryDefault();
$config = require APP_PATH . '/config/config.php';
$modules = $this->modules;
include_once APP_PATH . '/config/loader.php';
include_once APP_PATH . '/config/services.php';
include_once APP_PATH . '/config/router.php';
$this->setDI($container);
}
}