Re: liveuser singelton changes
| From: | Jeroen Houben | Date: | Tue, 11 Oct 2005 10:05:25 +0000 |
| Subject: | Re: liveuser singelton changes | ||
| References: | 1 | Groups: | php.pear.general |
| Request: | Send a blank email to pear-general+get-21352@lists.php.net to get a copy of this message | ||
Jeroen Houben wrote:
Hi, I've read the changelog for the new Liveuser release 0.16.7 Could somebody please explain me in more detail what the changes are in the singleton() method ? I noticed $lu = Liveuser::singleton($conf) does not return an instance anymore, but it's not clear to me (from the changelog or the API docs) how I would now create a new instance. JeroenOkay so a simple $lu = Liveuser::singleton($conf, 'somename'); will do the trick. The API docs however state that the signature be an array. This should be changed to string. Also, I think it would be nice if a simple call to $lu = Liveuser::singleton($conf) would still work. I think you could do this by changing the method slightly:
function &singleton(&$conf, $signature = null)
{
static $instances;
if (!isset($instances)) {
$instances = array();
}
if (is_null($signature)) {
if (empty($instances)) {
$signature = uniqid();
} else {
$signature = key($instances);
}
} elseif (!array_key_exists($signature, $instances)) {
$instances[$signature] =& LiveUser::factory($conf);
}
return $instances[$signature];
}
This would create a default signature and I think BC could be preserved this way.
Jeroen