Наследование класса в рнр

MO
На сайте с 09.04.2012
Offline
20
741

Здравствуйте.

Как наследовать класс если надо подключить БД используя паттерн синглтон(одиночка)

Пробую $conn=self::getInstance()->bd();

Выдает

Fatal error: Call to private DB::__construct() from invalid context in Z:\home\localhost\www\OOP\class\sin.php on line 94

Обмен WM на грн.
jokerov
На сайте с 18.07.2008
Offline
102
#1

Нужно сделать метод getInstance защищённым(protected).

MO
На сайте с 09.04.2012
Offline
20
#2

Я создал в классе где моя база

protected static $instance;

private function __construct(){}

private function __clone() {}

private function __wakeup() {}

public static function getInstance() {

if ( is_null(self::$instance) ) {

self::$instance = new DB;

}

return self::$instance;

}

O3
На сайте с 17.11.2008
Offline
127
#3

классы в пхп?

синглтон?

не - не слыхал 😂

MO
На сайте с 09.04.2012
Offline
20
#4

Все равно выдает ошибку.

Может надо по другому подключать

T
На сайте с 01.10.2004
Offline
73
#5

В ошибке же четко все написано. Конструктор приватный, вот и ошибка.

Но проблема не в этом, а в том, что вы совершенно неправильно пользуетесь наследованием.

В вашем случае оно вообще не нужно. Не надо наследовать класс базы в классах, которые должны базу использовать.

Просто вызывайте где надо DB::getInstace()

O3
На сайте с 17.11.2008
Offline
127
#6

а зачем наследовать ?

правьте "оригинал"

---------- Добавлено 13.05.2012 в 11:01 ----------

http://joyreactor.ru/post/235067

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий