mirror of
https://codeberg.org/vlw/scaffold.git
synced 2026-02-26 03:21:57 +01:00
fix: database class singleton to use existing database connection
This commit is contained in:
parent
71a9f12b02
commit
7a6be11557
2 changed files with 17 additions and 3 deletions
|
|
@ -19,6 +19,8 @@
|
|||
private const DEFAULT_USERNAME = "www-data";
|
||||
private const DEFAULT_PASSWORD = "";
|
||||
|
||||
private static ?Database $instance = null;
|
||||
|
||||
/**
|
||||
* Create a new Database instance from credentials
|
||||
*
|
||||
|
|
@ -44,6 +46,16 @@
|
|||
$_ENV["mariadb"]["user"] = $username;
|
||||
$_ENV["mariadb"]["pass"] = $password;
|
||||
$_ENV["mariadb"]["db"] = $database;
|
||||
|
||||
self::$instance = null;
|
||||
}
|
||||
|
||||
public static function instance(): static {
|
||||
if (self::$instance) {
|
||||
return self::$instance;
|
||||
}
|
||||
|
||||
return new static();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -56,6 +68,8 @@
|
|||
$_ENV["mariadb"]["pass"],
|
||||
$_ENV["mariadb"]["db"],
|
||||
);
|
||||
|
||||
self::$instance = $this;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
* @param string $table The target database table
|
||||
*/
|
||||
protected static function create(string $table, array $values): bool {
|
||||
return new Database()->from($table)->insert($values);
|
||||
return Database::instance()->from($table)->insert($values);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -42,7 +42,7 @@
|
|||
public readonly array $columns,
|
||||
public readonly array $where
|
||||
) {
|
||||
$this->db = new Database();
|
||||
$this->db = Database::instance();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -75,7 +75,7 @@
|
|||
* @return bool Entity exists
|
||||
*/
|
||||
public function isset(): bool {
|
||||
return $this->_isset ??= new Database()
|
||||
return $this->_isset ??= Database::instance()
|
||||
->from($this->table)
|
||||
->where($this->where)
|
||||
->limit(1)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue