-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathinit.php
More file actions
90 lines (75 loc) · 2.82 KB
/
init.php
File metadata and controls
90 lines (75 loc) · 2.82 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
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
89
90
<?php
/*!
*
* MIT License
*
* Copyright (c) 2020 - 2021 "Ildar Bikmamatov" <support@bayrell.org>
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
require_once __DIR__ . "/vendor/autoload.php";
define("ROOT_PATH", __DIR__);
define("COMMIT_BALANCE", 30*60);
$defs = [
/* App instance */
"app" => DI\create(\App\Instance::class),
"twig" => DI\create(\TinyPHP\Twig::class),
"db" => DI\create(\TinyORM\ConnectionList::class),
/* App settings */
"settings" => function()
{
return [
];
},
/* Connect to database */
"connectToDatabase" =>
function ()
{
$conn = new \TinyORM\MySQLConnection();
$conn->host = getenv("MYSQL_HOST");
$conn->port = getenv("MYSQL_PORT"); if (!$conn->port) $conn->port = "3306";
$conn->login = getenv("MYSQL_LOGIN");
$conn->password = getenv("MYSQL_PASSWORD");
$conn->database = getenv("MYSQL_DATABASE");
$conn->connect();
if (!$conn->isConnected())
{
echo "Error: " . $conn->connect_error . "\n";
exit(1);
}
$db = app("db");
$db->add("default", $conn);
return $db;
},
/* Other classes */
\FastRoute\RouteParser::class => DI\create(\FastRoute\RouteParser\Std::class),
\FastRoute\DataGenerator::class => DI\create(\FastRoute\DataGenerator\GroupCountBased::class),
\FastRoute\RouteCollector::class => DI\autowire(\FastRoute\RouteCollector::class),
\FastRoute\Dispatcher::class =>
function (\Psr\Container\ContainerInterface $c)
{
$router = $c->get(\FastRoute\RouteCollector::class);
return new \FastRoute\Dispatcher\GroupCountBased( $router->getData() );
},
\TinyPHP\ApiResult::class => DI\create(\TinyPHP\ApiResult::class),
\TinyPHP\RenderContainer::class => DI\create(\TinyPHP\RenderContainer::class),
\TinyPHP\FatalError::class => DI\create(\TinyPHP\FatalError::class),
];
/* Build dependency injection */
build_di($defs);