Singleton pattern
Jumaat, 2 September 2011, 2:36 pm
Singleton class is class that allow only one instance of its class to be instantiated.
A lot of examples I see the way to implement singleton pattern whether:
1. Extends a base singleton class
2. Each class apply singleton pattern (get_instance() method, has static $instance attribute)
3. Using registry pattern where one dedicated class act as the singleton instances manager
Well, things shouldn’t get too hard. Here, I will use the combination of registry pattern and singleton in just a function
function o($class) {
static $instances;
if (!isset($instances[$class]) || !$instances[$class] instanceof $class) {
$instances[$class] =& new $class();
}
return $instances[$class];
}
To use it:
o('db')->query(...);
o('db')->fetch();
o('singleton_class')->do_something();
2 September 2011
2 September 2011