Michael Virnstein wrote:
> you also have to make sure, that only one user can access the file for
> writing at one time, or your data gets probably
> screwed. The easiest way would be storing the object not in a file but in a
> database, so you don't have to care about locking.

Tnx for the help, and one more question. If I would serialize object and 
store it in a file, I would need some way to implement object waiting at 
the locked file untill it's unlocked (some kind of semaphore or 
monitor). I can lock the file with flock, but I don't know how to put 
object "on hold" while the file it's requesting is locked. As for the 
database, I don't use database (it's an assignment that needs to be done 
using XML, so all data is in XML files) and I don't see much sence in 
using db for storing only one serialized object.

> 
> But do you really need the same instance of the object? why not simply
> perform a $obj =& new Class();

If I figure out how to put "on hold" object while some other object 
performs it's operations on locked file, I wouldn't need to use the same 
instance.

> 
> ----------------------------------------------------------------------------
> ----------
> Code for Storing:
> <?php
> 
> $strData = serialize($data);
> 
> $fp = fopen("globalObjectData.inc", "w");
> fwrite($fp, $strData);
> fclose($fp);
> 
> ?>
> 
> Code for accessing:
> 
> <?php
> 
> // include object source before unserializing
> include "myObjectSrc.php";
> 
> $fp = fopen("globalObjectData.inc", "w");
> $strData = fread($fp, filesize("globalObjectData.inc"));
> fclose($fp);
> 
> // so we have our object back
> $obj = unserialize($strData);
> 
> 
> ----------------------------------------------------------------------------

Does anyone know how to implement monitor or semaphore or waiting queue 
on file resource? I'm using PHP 4.1.2 and Apache 1.2.23 on Windows platform.

Armin




-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to