Singleton Method pattern
<?php
abstract class Database {
public static function connect($host, $dbname, $user, $password) {
static $db = null;
if ($db === null) {
$dsn = 'mysql:host=' . $host . ';dbname=' . $dbname . ';charset=utf8';
$db = new PDO($dsn, $user, $password);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
return $db;
}
}
class UserModel extends Database {
public static function getId() {
$db = static::connect('localhost', 'dbname', 'user', 'password');
$stmt = $db->query('SELECT id FROM tbl_students');
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
}
var_dump(UserModel::getId());