Justin Giboney wrote:
Is there a way to use singleton [1] classes with webpages?

Basically I want to be able to have classes that are shared for multiple users, so that the class and objects don't have to be recreated.

They way I understand things now, are that all of your classes are destroyed (or at least unavailable) after the web server sends the page.

I have used memcached [2], but it adds a lot of code for classes all the singleton classes that I need. Plus, not all hosts support memcached, which makes the program less portable.

For those of you that don't think it is necessary, or that want more details, read on. I have a GUID [3] class that produces GUIDs for me. This class is set up to only allow one person through at a time (at least I hope), so that the same GUID will never be replicated. I only can have one object of this class in existence at a time or else the the same GUID could be created if both were hit at the same time.

Why a GUID? A GUID is necessary to be able to call things from the cache. Auto_increment on a dbms uses the same set of values for each table. That number cannot be used to reference objects in a cache, so something more detailed needs to be used.

Why a cache? A cache allows me to not hit the database as often. This speeds up the web server.

   Why OO [4]? Because it is clean.


I'm trying to understand what you want to do. From what you said I'm guessing that you want a portable way to generate unique keys for a cache, and are looking to some implementation of UUID to do this. [see http://tools.ietf.org/html/rfc4122]

What makes a UUID unique is statistics, ie. the odds of generating the same UUID twice is insignificantly small. In order to achieve this, you need to look toward the quality of randomness that goes into the generation of the UUID. There are many pseudo-random number generators that are actually very predictable so don't really accomplish the desired goal of uniqueness. Keeping one instance of the UUID generator class around may or may not accomplish this goal, depending on the underlying random number generator [see http://www.random.org/].

So if I understand what you're trying to do, you need to find a portable way to generate true randomness.

-- Walt


_______________________________________________

UPHPU mailing list
[email protected]
http://uphpu.org/mailman/listinfo/uphpu
IRC: #uphpu on irc.freenode.net

Reply via email to