2018-10-05 11:06:39 +02:00
|
|
|
<?php
|
2019-09-29 00:38:39 +02:00
|
|
|
namespace Misuzu;
|
2018-10-05 11:06:39 +02:00
|
|
|
|
2019-09-29 00:38:39 +02:00
|
|
|
use Misuzu\Database\Database;
|
2019-03-04 21:25:20 +01:00
|
|
|
|
2019-09-29 00:38:39 +02:00
|
|
|
final class DB {
|
|
|
|
private static $instance;
|
2019-05-07 10:08:27 +02:00
|
|
|
|
2019-09-29 00:38:39 +02:00
|
|
|
public static function init(...$args) {
|
|
|
|
self::$instance = new Database(...$args);
|
2019-05-07 10:08:27 +02:00
|
|
|
}
|
|
|
|
|
2019-09-29 00:38:39 +02:00
|
|
|
public static function __callStatic(string $name, array $args) {
|
|
|
|
return self::$instance->{$name}(...$args);
|
2018-10-07 01:30:48 +02:00
|
|
|
}
|
|
|
|
|
2019-09-29 00:38:39 +02:00
|
|
|
public static function buildDSN(array $vars): string {
|
|
|
|
$dsn = ($vars['driver'] ?? 'mysql') . ':';
|
2018-10-07 01:30:48 +02:00
|
|
|
|
2019-09-29 00:38:39 +02:00
|
|
|
foreach($vars as $key => $value) {
|
|
|
|
if($key === 'driver' || $key === 'username' || $key === 'password')
|
|
|
|
continue;
|
|
|
|
if($key === 'database')
|
|
|
|
$key = 'dbname';
|
2018-10-07 01:30:48 +02:00
|
|
|
|
2019-09-29 00:38:39 +02:00
|
|
|
$dsn .= $key . '=' . $value . ';';
|
|
|
|
}
|
2018-10-07 01:30:48 +02:00
|
|
|
|
2019-09-29 00:38:39 +02:00
|
|
|
return $dsn;
|
2018-10-07 01:30:48 +02:00
|
|
|
}
|
2018-10-05 11:06:39 +02:00
|
|
|
}
|