Revision: 2398
Updated Code
at February 9, 2007 14:38 by drwitt
Updated Code
/**
* Singleton Repository
* @param string $class PHP Class Name
* @param string $id Optional Object ID
* @return reference Reference to existing Object
*/
function &Singleton($class, $id='') {
static $singleton = array();
if (!array_key_exists($class.$id, $singleton))
$singleton[$class.$id] = &new $class();
$reference = &$singleton[$class.$id];
return $reference;
}
# first call: create object
$site_user=&Singleton('Student');
$site_user->Drink_Beer(5);
# second call: get a reference
$current_user=&Singleton('Student');
echo $current_user->Show_Beers_Counter();
#will be 5
#Two different objects
$one=&Singleton('Some_Class','one');
$two=&Singleton('Some_Class','two');
Revision: 2397
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at February 8, 2007 04:50 by drwitt
Initial Code
/**
* Singleton Repository
* @param string $class PHP Class Name
* @param string $id Optional Object ID
* @return reference Reference to existing Object
*/
function &Singleton($class, $id='') {
static $singleton = array();
if (!array_key_exists($class.$id, $singleton))
$singleton[$class.$id] = &new $class();
$reference = &$singleton[$class.$id];
return $reference;
}
# first call: create object
$site_user=&Singleton('Student');
$site_user->Drink_Beer(5);
# second call: get a reference
$current_user=&Singleton('Student');
echo $current_user->Show_Beers_Counter();
#will be 5
#Two different objects
$one=&Singleton('Some_Class','one');
$two=&Singleton('Some_Class','two');
Initial URL
Initial Description
Initial Title
Flexible Singleton
Initial Tags
php, object, ruby
Initial Language
PHP