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