This repository has been archived on 2023-01-06. You can view files and clone it, but cannot push or open issues or pull requests.
web/app/inc.php
2022-04-14 20:59:42 +00:00

54 lines
1.1 KiB
PHP

<?php
/**
* This is the main file to be included on every page.
* It will act as a front controller of our application.
* _____
* / \
* | () () |
* \ ^ /
* |||||
* |||||
*
* Tread carefully
*/
$php_version = '8';
if (version_compare(PHP_VERSION, $php_version, '<'))
{
echo 'This app requires a minimum of PHP ' . $php_version . ' current being: ' . PHP_VERSION . "\n";
die();
}
unset($php_version);
// PSR-4 like autoloader
spl_autoload_register(
function ($class_name) {
$path = __DIR__ . '/lib/' . str_replace('\\', '/', $class_name) . '.php';
require $path;
}
);
use App\Core\ {
ErrorHandler,
Config,
Database,
Session,
User,
App,
AccessControl
};
new ErrorHandler();
$config = (new Config(__DIR__ . '/config.php'))->config;
$database = new Database($config['database']);
$session = new Session();
$user = new User($session, $database);
$app = new App(__DIR__, $config, $database, $session, $user);
// we will use $app instead
unset($config, $database, $session, $user);
new AccessControl($app);
return $app;