<?php
/*
 * DuckBrain - Microframework
 *
 * Clase diseñada para crear y devolver una única instancia mysqli (database).
 * Depende de manera forzada de que estén definidas las constantes:
 * dbhost, dbname, dbpass y dbuser
 *
 * Autor: KJ
 * Web: https://kj2.me
 * Licencia: MIT
 */

namespace Libs;
use mysqli;

class Database extends \mysqli {
    static private $db;

    private function __construct() {}

    /**
     * Devuelve una instancia homogénea (singlenton) a la base de datos.
     *
     * @return mysqli
     */
    static public function getConnection() : mysqli {
        if (!isset(self::$db)) {
            self::$db = new mysqli(dbhost, dbuser, dbpass, dbname);
            if (self::$db->connect_errno) {
                echo '<style>body{white-space: pre-line;}</style>';
                throw new \Exception('No se ha podido conectar a la base de datos.');
            }
        }
        return self::$db;
    }
}
?>