в начале класса объявдена переменная
private static $instance;
и в классе идет обращение примерно такого содержания
$inConf = cmsConfig::getInstance();
сам метод выглядит так:
public static function getInstance() {
if (self::$instance === null) {
self::$instance = new self;
}
return self::$instance;
}
помогите понять что он выполняет и как он работает?
Спустя 1 час, 11 минут, 35 секунд (8.06.2011 - 07:57) inpost написал(а):
sc2r2bey
Выглядит на синглтон, создаёт еденичное соединение с БД, и далее работает от него.
В начале $instance пустое, но при первом обращении - что-то там запускает = new self; При следующих обращениях уже будет работать с результатом данной команды, а не дёргать её каждый раз.
Выглядит на синглтон, создаёт еденичное соединение с БД, и далее работает от него.
В начале $instance пустое, но при первом обращении - что-то там запускает = new self; При следующих обращениях уже будет работать с результатом данной команды, а не дёргать её каждый раз.
Спустя 3 дня, 6 часов, 43 минуты, 19 секунд (11.06.2011 - 14:40) Krevedko написал(а):
синглтон
Спустя 1 день, 2 часа, 18 минут, 43 секунды (12.06.2011 - 16:59) sc2r2bey написал(а):
это хорошо или плохо?
Спустя 33 минуты, 18 секунд (12.06.2011 - 17:32) inpost написал(а):
sc2r2bey
Ты предлагаешь поднять вопрос о том, что круче, процедурка или ооп? Это один из приёмов ООП, если он существует, значит он нужен в ООП.
Ты предлагаешь поднять вопрос о том, что круче, процедурка или ооп? Это один из приёмов ООП, если он существует, значит он нужен в ООП.
Спустя 3 часа, 10 минут, 13 секунд (12.06.2011 - 20:42) sc2r2bey написал(а):
а какую функцию выполняет self?
Спустя 1 час, 42 минуты, 16 секунд (12.06.2011 - 22:24) inpost написал(а):
sc2r2bey
обращение к самому себе, свои методам или свойствам. Что в данном случае делается - не понял :)
Ну вот в качестве примера того же сингл-тона, наследуем другой класс и используем коннект. Показываю только в образовательно-объяснительных целях:
обращение к самому себе, свои методам или свойствам. Что в данном случае делается - не понял :)
Ну вот в качестве примера того же сингл-тона, наследуем другой класс и используем коннект. Показываю только в образовательно-объяснительных целях:
class DB extends MySQLi {
private static $instance;
public static function _($server = NULL,$user = NULL,$password = NULL,$db = NULL)
{
if(!self::$instance)
{
$cn = __CLASS__;
self::$instance = new $cn($server,$user,$password,$db);
/* change character set to utf8 */
if (!self::$instance->set_charset("utf8"))
die("Error loading character set utf8: ".self::$instance->error);
return true;
}
else
return self::$instance;
}
}
Спустя 11 часов, 27 минут, 31 секунда (13.06.2011 - 09:52) linker написал(а):
self используется для обращения к своему классу.