safeLoad(); date_default_timezone_set($_ENV['APP_TIMEZONE'] ?? 'Europe/Rome'); class DBHandlerSelect { private static $instance = null; private $pdo; private function __construct() { $dotenv = Dotenv::createImmutable(dirname(__DIR__, 3)); $dotenv->load(); $host = $_ENV['DB_HOST']; $db = $_ENV['DB_DATABASE']; $user = $_ENV['DB_USERNAME']; $pass = $_ENV['DB_PASSWORD']; $charset = 'utf8mb4'; $dsn = "mysql:host=$host;dbname=$db;charset=$charset"; $options = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, ]; try { $this->pdo = new PDO($dsn, $user, $pass, $options); } catch (PDOException $e) { die("Database connection failed: " . $e->getMessage()); } } public static function getInstance() { if (self::$instance === null) { self::$instance = new DBHandlerSelect(); } return self::$instance; } public function getConnection() { return $this->pdo; } }