Re: Re: Cache

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



...
Hmmmm... well, file_get_contents() doesn't lock the file so I'm interested in how you're accomplishing this feat. Perhaps you're creating a temporary directory (atomic IIRC) for the filename and then flocking that? I dunno, I hate race conditions.

I was to fast with that, I didn't look into it enough..
What _would_ be the fastest way (+locking) to do this?


I haven't tested either of these options, but two ideas come to the top of my head:


1.  if( mkdir($filename. '.lck') ) $text = file_get_contents($filename);

/* be sure to rmdir($filename . '.lck') when operation is complete */

2. regular steps of fopen(), flock() / mkdir(), fgets(), fclose(), flock() / rmdir()


In any case you will find the user notes for flock() are useful: http://php.net/manual/en/function.flock.php


You might also want to consider the security of the data that goes into your cache'd $_APP data. Because any file that is created by PHP is going to be in pretty much the same boat as the default session files and on a shared server, well...

That's from a different thread, and is a different issue. I agree with
your argument though, I'm aware of this risk, but most of the time I
code on dedicated servers anyway =)

grt,
Evert

Lucky you! Hey what can I say except that I can occasionally remember more than simply what is on screen *right now* and I try to put it all together when I can.


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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux