vsko
4/11/2017 - 1:41 PM

Singleton Method pattern

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());