Files
api-php-yt-videos/src/Database.php
T

29 lines
709 B
PHP

<?php
declare(strict_types=1);
final class Database
{
private static ?PDO $pdo = null;
public static function connect(): PDO
{
if (self::$pdo !== null) {
return self::$pdo;
}
$root = dirname(__DIR__);
$dsn = 'sqlite:' . $root . '/database/api_tube.sqlite';
self::$pdo = new PDO($dsn);
self::$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
self::$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
self::$pdo->exec('PRAGMA foreign_keys = ON');
$schema = file_get_contents($root . '/database/schema.sql');
self::$pdo->exec($schema);
return self::$pdo;
}
}