public function setup() { foreach (array_keys($this->_singletons) as $singleton) { $this->_singletons[$singleton] = Ak::getStaticVar($singleton); Ak::unsetStaticVar($singleton); } }
public function disconnect() { if ($this->isConnected()) { $this->getConnection()->close(); unset($this->_Mongo[$this->_connetion_signature]); unset($this->_MongoDatabases[$this->_connetion_signature]); Ak::unsetStaticVar(__CLASS__ . '_' . $this->_connetion_signature); } return !$this->isConnected(); }
public function dispatchAppServer($context) { $_ENV = $_SERVER = $context['env']; @parse_str($_ENV['QUERY_STRING'], $_GET); $_GET['ak'] = $_ENV['PATH_INFO']; Ak::unsetStaticVar('AkRequestSingleton'); Ak::unsetStaticVar('AkRouterSingleton'); Ak::unsetStaticVar('AkUrlWriterSingleton'); AkConfig::setOption('Request.remote_ip', '127.0.0.1'); try { $time_start = microtime(true); AK_ENABLE_PROFILER && AkDebug::profile(__CLASS__ . '::' . __FUNCTION__ . '() call'); $this->Request = AkRequest::getInstance(); $this->Response = new AkResponse(); $path = ltrim(str_replace('..', '.', $context['env']['REQUEST_URI']), '/. '); if (empty($path) && file_exists(AK_PUBLIC_DIR . DS . 'index.html')) { $Controller = new AkActionController(); $Controller->Response = $this->Response; $Controller->renderText(file_get_contents(AK_PUBLIC_DIR . DS . 'index.html')); return $Controller->Response; } elseif (!empty($path) && file_exists(AK_PUBLIC_DIR . DS . $path)) { $Controller = new AkActionController(); $Controller->Response = $this->Response; $Controller->sendFile(AK_PUBLIC_DIR . DS . $path, array('stream' => false)); return $Controller->Response; } else { if ($this->Controller = $this->Request->recognize()) { $this->Controller->ak_time_start = $time_start; AK_ENABLE_PROFILER && AkDebug::profile('Request::recognize() completed'); $this->Controller->process($this->Request, $this->Response); } return $this->Response; } } catch (Exception $e) { if (isset($this->Controller) && method_exists($this->Controller, 'render_error')) { $this->Controller->render_error($e); } else { $ExceptionDispatcher = new AkExceptionDispatcher(); $ExceptionDispatcher->renderException($e); } } }
function &_staticVar($name, &$value, $destruct = false) { static $_memory; $null = null; $true = true; $false = false; $return = $null; if ($value === null && $destruct === false) { /** * GET mode */ if (isset($_memory[$name])) { $return =& $_memory[$name]; } } else { if ($value !== null) { /** * SET mode */ if (is_string($name)) { $_memory[$name] =& $value; $return = $true; } else { $return = $false; } } else { if ($destruct === true) { if ($name !== null) { $value = isset($_memory[$name]) ? $_memory[$name] : $null; if (is_object($value) && method_exists($value, '__destruct')) { $value->__destruct(); } unset($value); unset($_memory[$name]); } else { foreach ($_memory as $name => $value) { Ak::unsetStaticVar($name); } } } } } return $return; }
public function clearStaticCache($namespace, $environment = TPV_MODE) { $key = $this->_getCacheKey($namespace, $environment); Ak::unsetStaticVar($key); }
public function test_static_var_destruct_all_vars() { $value = new stdClass(); $value->id = 1; $return = Ak::setStaticVar('testVar1', $value); $this->assertEqual(true, $return); $value2 = new stdClass(); $value2->id = 2; $return = Ak::setStaticVar('testVar2', $value2); $this->assertEqual(true, $return); $value3 = new stdClass(); $value3->id = 3; $return = Ak::setStaticVar('testVar3', $value3); $this->assertEqual(true, $return); $null = null; Ak::unsetStaticVar('testVar1'); $storedValue1 =& Ak::getStaticVar('testVar1'); $this->assertEqual($null, $storedValue1); $storedValue2 =& Ak::getStaticVar('testVar2'); $this->assertEqual($value2, $storedValue2); $storedValue3 =& Ak::getStaticVar('testVar3'); $this->assertEqual($value3, $storedValue3); Ak::unsetStaticVar($null); $storedValue1 =& Ak::getStaticVar('testVar1'); $this->assertEqual($null, $storedValue1); $storedValue2 =& Ak::getStaticVar('testVar2'); $this->assertEqual($null, $storedValue2); $storedValue3 =& Ak::getStaticVar('testVar3'); $this->assertEqual($null, $storedValue3); }
public function clearStaticCache($namespace, $environment = AK_ENVIRONMENT) { $key = $this->_getCacheKey($namespace, $environment); Ak::unsetStaticVar($key); }
static function &_staticVar($name, &$value = null, $destruct = false) { static $_memory; if (!constant('AK_CAN_FORK') || !($pid = getmypid())) { $pid = 0; } $null = null; $true = true; $false = false; $return = $null; if ($value === null && $destruct === false) { /** * GET mode */ if (isset($_memory[$pid][$name])) { $return = $_memory[$pid][$name]; } } else { if ($value !== null) { /** * SET mode */ if (is_string($name)) { $_memory[$pid][$name] = $value; $return = $true; } else { $return = $false; } } else { if ($destruct === true) { if ($name !== null) { $value = isset($_memory[$pid][$name]) ? $_memory[$pid][$name] : $null; if (is_object($value) && method_exists($value, '__destruct')) { $value->__destruct(); } unset($value); unset($_memory[$pid][$name]); } else { foreach ($_memory[$pid] as $name => $value) { Ak::unsetStaticVar($name); } } } } } return $return; }