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

_CMD_

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

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

Если кто сталкивался подскажите, буду признателен.
 

Кром

Новичок
Совершенно непонятно, что тебе надо. Кеширование объектов?
 

vitus

мимо проходил
как создавать один раз за все время работы пользователя классы ?
видимо объекты всётаки ...
Кром
похоже что кэширование для каждого пользователя
_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 тут вообще не при чем. Данные имеет смысл хранить или в сессии, как уже было сказано, или во временных таблицах в базе.
 

ZN

Новичок
Кром
то, что автор описал в первом посте - и есть синглтон, другое дело, что, как выяснилось позже, ему лучше подойдёт хранить в сессии
 

ZN

Новичок
itprog
не синглтон? ну, по крайней мере с описанием на википедии совпадает
 

itprog

Cruftsman
ZN

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

Кром

Новичок
>ну, по крайней мере с описанием на википедии совпадает

Железная логика.
 

_CMD_

Новичок
Нашел я что искал
спасибо 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;
}

}
?>
 

Alexandre

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

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

_CMD_

Новичок
Alexandre
Ты с AJAX работал ?
поробуй, поймеш в чем тут дело...
 
Сверху