Прекрасно создавался класс по синглтон паттерну для mysqli, решил переписать для PDO:
class DB extends PDO
{
const DB_HOST = 'localhost';
const DB_LOGIN = 'root';
const DB_PASSWORD = '';
const DB_NAME = 'dbase';
private static $_instance = NULL;
private function __construct()
{
parent::__construct('mysql:host='.self::DB_HOST.';dbname='.self::DB_NAME, self::DB_LOGIN, self::DB_PASSWORD);
}
private function __clone()
{
}
public static function getInstance()
{
if (is_null(self::$_instance)) {
self::$_instance = new self;
}
return self::$_instance;
}
}
Всё это дело выдаёт ошибку:
Fatal error: Access level to DB::__construct() must be public (as in class PDO)
Вопрос - нафига в PDO усложнили жизнь, не дав реализовать каноничный синглтон, и каким костылём его теперь реализовывать? Чтобы действительно нельзя было создать вторую копию объекта.