Загвоздка с классами

  • Автор темы Автор темы _CMD_
  • Дата начала Дата начала

_CMD_

Новичок
Загвоздка с классами

Ни кто не сталкивался с такой необходимостью как создавать один раз за все время работы пользователя классы ?
То есть заходит пользователь на сайт, создаются все необходимые обьекты классов (зарнее не известно какие, во время выполнения только узнаются) А потом при попытке озать экземпляр класса в объект передается ссылка на уже существующий экзепляр...

Если кто сталкивался подскажите, буду признателен.
 
как создавать один раз за все время работы пользователя классы ?
видимо объекты всётаки ...
Кром
похоже что кэширование для каждого пользователя
_CMD_ - в сессию пиши, только нужно чтобы при подъёме сессии все заюзанные классы были загружены
 
Вроде того...
просто при работе с AJAX обьекты необходимо пересоздавать, соотвественно все данные теряются.
Я вот слышал что можно создать некий базовый класс и он будет это дело отслеживать и если обект уже существует например в сессии, то просто передавать на него ссылку а не создавать новый...
вот тока загвоздка как передать ссылку на этот обьект если используеться страндартная конструкция
obj = new my_class()

-~{}~ 21.03.06 18:53:

Повторюсь я незнаю зарнее какие обькты будут созданны
я вот начал экспериментировать
написал вот такой код...
class event1
{
public $mic;
function event1()
{
if (!empty($_SESSION[__CLASS__]))
{
//Тут надо както вернуть ссылку на уже существующий обьект
}
else
{

$this->mic = microtime();
$_SESSION[__CLASS__] = $this;
}
return $_SESSION[__CLASS__];
}

function aa()
{
echo $this->mic;
}
}

$evt1= new event1();
но дело в том что как вернуть ссылку я ХЗ
 
Думаю, singleton тут вообще не при чем. Данные имеет смысл хранить или в сессии, как уже было сказано, или во временных таблицах в базе.
 
Кром
то, что автор описал в первом посте - и есть синглтон, другое дело, что, как выяснилось позже, ему лучше подойдёт хранить в сессии
 
itprog
не синглтон? ну, по крайней мере с описанием на википедии совпадает
 
ZN

Я не про первое сообщение, я не знаю что там можно сравнивать с текстом википедии..
 
>ну, по крайней мере с описанием на википедии совпадает

Железная логика.
 
Нашел я что искал
спасибо ZN
?php
#file class.singleton.php
class singleton
{
var $instance;

function __construct()
{
static $instances=array();
$class = get_class($this);
if(!isset($instances[$class])) $instances[$class] = $this;
foreach(get_class_vars($class) as $var => $value)
{
$this->$var = &$instances[$class]->$var;
}
$this->instance = &$instances[$class];
}

function __set($name,$value)
{
$this->$name = $value;
if(!isset($this->instance->$name)) $this->instance->$name = &$this->$name;
}

}
?>
 
То есть заходит пользователь на сайт, создаются все необходимые обьекты классов (зарнее не известно какие, во время выполнения только узнаются) А потом при попытке озать экземпляр класса в объект передается ссылка на уже существующий экзепляр...
создавал я классы во время выполнения, именно РНР это позволяет, в отличие от ява или С++
вопрос - нужно ли именно это тебе ?
скорее всего необходимо по уму организовать сессии.

_CMD_ тебе нужно организовать сессию.
 
Сверху