-
-
Notifications
You must be signed in to change notification settings - Fork 132
Expand file tree
/
Copy pathbootstrap.php
More file actions
55 lines (43 loc) · 1.43 KB
/
Copy pathbootstrap.php
File metadata and controls
55 lines (43 loc) · 1.43 KB
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
<?php
declare(strict_types=1);
use Phalcon\Db\Adapter\Pdo\Mysql;
use Phalcon\Di\FactoryDefault;
use Phalcon\Mvc\Application;
use Phalcon\Mvc\Dispatcher;
use Phalcon\Mvc\Url;
use Phalcon\Mvc\View;
return static function (): Application {
$viewsDir = __DIR__ . '/views/';
// Create a Dependency Injection container with the framework defaults
$container = new FactoryDefault();
// Controllers live under the Tutorial\Controllers namespace
$container->set('dispatcher', function () {
$dispatcher = new Dispatcher();
$dispatcher->setDefaultNamespace('Tutorial\\Controllers');
return $dispatcher;
});
// Views
$container->set('view', function () use ($viewsDir) {
$view = new View();
$view->setViewsDir($viewsDir);
return $view;
});
// Base URI
$container->set('url', function () {
$url = new Url();
$url->setBaseUri('/');
return $url;
});
// Database - reads env vars (set by docker-compose / CI) with local defaults
$container->set('db', function () {
return new Mysql(
[
'host' => getenv('DB_HOST') ?: '127.0.0.1',
'username' => getenv('DB_USERNAME') ?: 'root',
'password' => getenv('DB_PASSWORD') ?: 'secret',
'dbname' => getenv('DB_NAME') ?: 'tutorial',
]
);
});
return new Application($container);
};