Можно ли сделать на PHP один синглетон для разных пользователей ?
Создал синглетон для коннекта к БД. Его используют разные классы таблиц.
Пришлось делать транзакции и я засомневался как оно будет роботать если одновременно два пользователя обратятся по одному урлу. Експеримент (как я и предпологал) показал что на каждое обращение создается свой синглетон. Ето мен полностю устраивает, но вопрос
Можно ли создать синглетон который будет жыть после выполнения запроса и будет глобальным для всех обращений ?
Единственное, что ты можешь сделать, это передавать линк коннекта в другие классы таблиц, типа того
Код:
<?php
class Db
{
private static $_instance = null;
private $_link;
private function __construct($param)
{
$this->_link = mysql_connect($param);
}
public static function instance($param)
{
if(is_null(self::$_instance)) {
self::$_instance = new Db($param);
}
return self::$_instance;
}
public function getLink()
{
return $this->_link;
}
}
class Db_Table
{
public function __construct($link = null)
{
if(is_null($link)) {
throw new Exception('Установите соединение');
}
}
}
class Db
{
private static $_instance = null;
private $_link;
private function __construct($param)
{
$this->_link = mysql_connect($param);
}
public static function instance($param)
{
if(is_null(self::$_instance)) {
self::$_instance = new Db($param);
}
return self::$_instance;
}
public function getLink()
{
return $this->_link;
}
}
class Db_Table
{
public function __construct($link = null)
{
if(is_null($link)) {
throw new Exception('Установите соединение');
}
}
}
PS Я бы сделал немного по другому, но смысл тот же.
Меня интересовала суто возможность одного общего синглетона на всю жизь веб-сервера. Ну нельзя так нельзя. Потребности в нем у меня пока не возникало. Суто интересуюсь.
Спасибо за ответ.