class Register {
static $stack;
/**********************************************************************************************
* Положить объект в хранилище
**********************************************************************************************/
static function set_entry($key, &$item)
{
Register::$stack[$key] = &$item;
}
/**********************************************************************************************
* Взять объект из хранилища
**********************************************************************************************/
static function &get_entry($key)
{
return isset(Register::$stack[$key])?Register::$stack[$key]:false;
}
/**********************************************************************************************
* Проверить наличие объекта в хранилище
**********************************************************************************************/
function is_entry($key)
{
return ($this->get_entry($key) !== null);
}
}
Register::set_entry("db_drv", new cMySQL(DB_HOST, DB_NAME, DB_USER, DB_PASSWORD));
...
...
...
//
$db_drv = Register::get_entry("db_drv");
$db_drv->query("select * from table");
$obj = Context::getInstance();
$obj['var1'] = 'value1';
var_dump(isset($obj['var1'])); // true
var_dump($obj['var1']); // 'value1'
unset($obj['var1']);
var_dump($obj['var1']); // NULL
$obj['var1'] = 'value1';
$obj['var2'] = 'value2';
foreach($obj as $k => $v)
{
print "$k => $v";
} // var1 => value1 и var2 => value2
$obj2 = Context::getInstance();
var_dump($obj2['var2']); // value2
global $USERID;
$oldUser = $USERID;
$USERID = 100500;
call_something_which_use_user_Id();
$USERID = $oldUser;
$obj = Context::getInstance();
$obj->save('USERID');
$obj->set('USERID',100500);
call_something_which_use_user_Id();
$obj->restore('USERID');
$Context = context::getInstance();
$Context['ddd']['dddd'] = 56;
echo $Context['ddd']['dddd'];