[ 'cle" → valeur ] ] * * @var array */ public private(set) static array $configs = []; /** * Instance actuelle de l'application. * @var Kernel|null */ private static ?self $instance = null; /** * Méthode qui permet de démarrer le site. * @return self */ public static function start(): self { self::$instance = new self(); self::$instance->init(); return self::$instance; } /** * Permet d'obtenir l'instance actuelle du site. * @return self */ public static function getInstance(): self { return self::$instance; } /** * Constructeur. */ public function __construct() { } /** * Permet de préparer le démarrage du site. * Lancé automatiquement par start(). * * @return void * @see self::start() */ public function init(): void { $this->buildAutoloader(); $this->loadConfig(); Authentification::startSession(); try { Router::routeTo(); } catch ( InvalidRouteException $e ){ die( $e->getMessage() ); } } /** * Permet de mettre en place l'Autoloader. * @return void */ private function buildAutoloader(): void { require_once 'Helpers/AutoLoader.php'; AutoLoader::register(); } /** * Permet de charger tous les fichiers de configuration du site. * @return void */ private function loadConfig(): void { try { self::$configs['general'] = ConfigFactory::loadConfigFile('general'); self::$configs['route_arguments'] = ConfigFactory::loadConfigFile('route_arguments'); self::$configs['views'] = ConfigFactory::loadConfigFile('views'); } catch( ConfigFailedLoadingException $e ){ die( $e->getMessage() ); } } }