45 lines
834 B
PHP
45 lines
834 B
PHP
<?php
|
|
|
|
class Config
|
|
{
|
|
private static $instances = [];
|
|
|
|
private array $app;
|
|
private array $database;
|
|
|
|
protected function __construct()
|
|
{
|
|
$this->app = require_once __DIR__ . "/../../config/app.php";
|
|
$this->database = require_once __DIR__ . "/../../config/database.php";
|
|
}
|
|
|
|
protected function __clone()
|
|
{
|
|
}
|
|
|
|
public function __wakeup()
|
|
{
|
|
throw new \Exception("Cannot unserialize a singleton.");
|
|
}
|
|
|
|
private static function getInstance(): Config
|
|
{
|
|
$cls = static::class;
|
|
if (!isset(self::$instances[$cls])) {
|
|
self::$instances[$cls] = new static();
|
|
}
|
|
|
|
return self::$instances[$cls];
|
|
}
|
|
|
|
public static function getBasePath()
|
|
{
|
|
return Config::getInstance()->app["basePath"];
|
|
}
|
|
|
|
public static function getDatabase()
|
|
{
|
|
return Config::getInstance()->database;
|
|
}
|
|
}
|