<MyRusakov.ru />

Вёрстка сайта с нуля 2.0

Вёрстка сайта с нуля 2.0

Система "Вёрстка сайта с нуля 2.0" содержит в себе не только сами видеоуроки по адаптивной вёрстке сайтов с примерами, но и вспомогательную систему для более эффективного обучения.

Сам курс обучит Вас абсолютно с нуля HTML5 и CSS3, а также научит верстать сайты с помощью реальных примеров вёрстки. Обучение идёт от простого к сложному. В последнем разделе курса идёт обучение адаптивной вёрстке сайтов: Вы узнаете всю необходимую теорию, а также увидите пример реальной адаптивной вёрстки сайта.

Как итог, курс совмещает в себе всё, что нужно по HTML, CSS и адаптивной вёрстке сайтов, с наглядными примерами, с обучением от простого к сложному и без необходимости иметь начальных знаний, а благодаря вспомогательной системе психологически курс проходится очень легко, а на выходе Вы сможете сделать адаптивную вёрстку любого сайта любой сложности.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

Класс БД на Singleton
30.06.2012 16:00:58 Класс БД на Singleton Сообщение #1
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Михаил, собственно имею вот такой класс основанный на Singleton
<?php
class DB {
private static $msqlicnct = NULL;
private function __construct() {
$this->db = new Mysqli('localhost', 'root', '', 'steel');
$this->db->query("SET lc_time_names = 'ru_RU'";
$this->db->query("SET NAMES 'utf8'";
}
private function __clone() {}
private function __wakeup() {}
public static function select() {
if ( is_null(self::$msqlicnct) ) {
self::$msqlicnct = new DB();
}
return self::$msqlicnct;
}
public function selectForums() {//извлечение всех форумов
$b = $this->db->query("SELECT * FROM forums ORDER BY pn";
return $b;
}
public function selectForumRazdels($id) {//извлечение разделов форума по id форума
$b = $this->db->query("SELECT * FROM razdels WHERE forum_id = '" . $id . "' ORDER BY pn";
return $b;
}
public function selectThemeNum($id) {//информация о количестве тем в разделе
$b = $this->db->query("SELECT COUNT(*) FROM `themes` WHERE `razdel_id`='" . $id . "'";
return $b;
}
public function selectTopicNum($id) {//информация о количестве топиков в разделе
$b = $this->db->query("SELECT COUNT(*) FROM `topics` WHERE `razdel_id`='" . $id . "'";
return $b;
}
}
?>

Хочу сделать автоматическое отключение от БД ($Mysqli->close()
Как лучше сделать его? Через приватный деструктор?
Профиль Ответить
30.06.2012 16:13:06 Класс БД на Singleton Сообщение #2
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Да, через деструктор надо это делать.
Профиль Ответить
30.06.2012 16:15:00 Класс БД на Singleton Сообщение #3
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

А как быть, если public function __destruct работает, а private function __destruct выдаёт ошибку Warning: Call to private DB::__destruct() from context '' during shutdown ignored in Unknown on line 0
Профиль Ответить
30.06.2012 16:23:21 Класс БД на Singleton Сообщение #4
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Попробуйте сделать его protected, а затем, если работать не будет, то public.
Профиль Ответить
30.06.2012 16:25:21 Класс БД на Singleton Сообщение #5
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

пробовал, выдаёт ту же ошибку... public та всё хорошо, да только за безопасность я боюсь
Профиль Ответить
30.06.2012 16:55:19 Класс БД на Singleton Сообщение #6
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Никакой опасности нет, тем более, невозможно использовать private, поскольку вызывается этот метод в том объекте, который его использует. Разумеется, private другой объект вызвать не может, отсюда и ошибка.
Профиль Ответить
30.06.2012 18:04:14 Класс БД на Singleton Сообщение #7
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

А, вон оно что) Ну тогда я спокоен) Спасибо)
Профиль Ответить