Эта тема на forum.dklab.ru


Добрый Дэн: COM-объекты в сессии или глобальные
Стоит следующая связка Apache1.3+PHP4.3+MySQL4 под Win2k3.
Работаем через COM с 1С. Так как база большая, то хотелось бы создавать COM-объект один раз за сессию и дальше просто к нему обращаться.
То, что сессионные переменные объектами быть не могут я в курсе.
Попробовал делать через глобальные переменные:
session_start();
if (!isset($_SESSION['res_init']))
{
$GLOBALS[v77]=new COM("v77.Application");
$res_init=$GLOBALS[v77]->Initialize($GLOBALS[v77]->RMTrade, "/D\\\\malysh\\db0 /n**** /p****", "");
echo "Объект создан. Ссылка на 1С=".$GLOBALS[v77]->RMTrade;
echo "<br>Идентификатор сессии=".session_id();
if( !$res_init ) {
echo "<b>жопа</b>";
session_destroy();
return 0;
}
echo "<br><h2>Крута!!!!!</h2><br>";
$_SESSION['res_init']=$res_init;
}
else
{
echo "Сессия уже создана. Ссылка на 1С=".$GLOBALS[v77]->RMTrade;
echo "<br>Идентификатор сессии=".session_id();
}

Тоже самое - при завершении работы скрипта объект COM уничтожается и разумеется при следующем обращении уже к нему обратится нельзя.
Вот собственно и вопрос - неужели данную задачу нельзя решить средствами PHP и придется разбираться с ASP ради этого?
Устроит любой вариант решения - или создавать объект в пределах сессии или глобальный - сайт будет под паролем для дилеров, там больше пары десятков посетителей в принципе не будет.
Стас:
Подниму тему. Такая же проблема.
Maus:
Добрый Дэн
Налицо явное непонимание глобальных переменных. Смотреть в сторону сериализации объектов (для сохранения в сессию) не пробовали?
Юрий Насретдинов:
Я думаю, это на пхп решается только если не завершать работу скрипта, а оставлять его работать в качестве демона и при необходимости к нему как-нибудь обращаться.

Эта тема на forum.dklab.ru