summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniel Weipert <code@drogueronin.de>2022-01-27 22:57:25 +0100
committerDaniel Weipert <code@drogueronin.de>2022-01-27 22:57:25 +0100
commit88880f14dff2731838953b937692f87620750f69 (patch)
treeca4fc7f08986793523c196b3da824edc3c4c6ac7 /src
parent27a1680fe386db99fd983eba64533091b9451d27 (diff)
Add Kernel with configHEADmain
Diffstat (limited to 'src')
-rw-r--r--src/Kernel.php51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/Kernel.php b/src/Kernel.php
new file mode 100644
index 0000000..29785a8
--- /dev/null
+++ b/src/Kernel.php
@@ -0,0 +1,51 @@
+<?php
+
+namespace Elements;
+
+class Kernel
+{
+ private static array $config = [];
+
+ /**
+ * Kernel initialization.
+ */
+ public static function init()
+ {
+ $configFile = self::findAppConfigFile(dirname(__DIR__));
+ $config = include $configFile;
+ foreach ($config as $key => $value) {
+ self::$config[$key] = $value;
+ }
+
+ Template::init();
+ DB::init();
+ new Router();
+ }
+
+ /**
+ * Find app config file in parent directories
+ */
+ private static function findAppConfigFile(string $path): string
+ {
+ $currentDirectory = $path;
+ while ($currentDirectory !== '/') {
+ $configFile = $currentDirectory . '/config.php';
+ if (file_exists($configFile)) {
+ return $configFile;
+ }
+
+ $currentDirectory = dirname($currentDirectory);
+ }
+
+ die('config.php missing');
+ }
+
+ /**
+ * Get config value
+ */
+ public static function config($key): mixed
+ {
+ return self::$config[$key];
+ }
+}
+