offsetExists($key); } /** * Set a value, go straight to session. * * @param string $key Name * @param mixed $value Value * * @return void */ function offsetSet($key, $value) { $_SESSION[$key] = $value; } /** * Get a variable from either the session, or if its not in the session * attempt to get it from an api call. * * @see ArrayAccess::offsetGet() * * @param mixed $key Name * * @return mixed */ function offsetGet($key) { if (!ElggSession::$__localcache) { ElggSession::$__localcache = array(); } if (isset($_SESSION[$key])) { return $_SESSION[$key]; } if (isset(ElggSession::$__localcache[$key])) { return ElggSession::$__localcache[$key]; } $value = NULL; $value = elgg_trigger_plugin_hook('session:get', $key, NULL, $value); ElggSession::$__localcache[$key] = $value; return ElggSession::$__localcache[$key]; } /** * Unset a value from the cache and the session. * * @see ArrayAccess::offsetUnset() * * @param mixed $key Name * * @return void */ function offsetUnset($key) { unset(ElggSession::$__localcache[$key]); unset($_SESSION[$key]); } /** * Return whether the value is set in either the session or the cache. * * @see ArrayAccess::offsetExists() * * @param int $offset Offset * * @return bool */ function offsetExists($offset) { if (isset(ElggSession::$__localcache[$offset])) { return true; } if (isset($_SESSION[$offset])) { return true; } if ($this->offsetGet($offset)) { return true; } return false; } /** * Alias to ::offsetGet() * * @param string $key Name * * @return mixed */ function get($key) { return $this->offsetGet($key); } /** * Alias to ::offsetSet() * * @param string $key Name * @param mixed $value Value * * @return void */ function set($key, $value) { $this->offsetSet($key, $value); } /** * Alias to offsetUnset() * * @param string $key Name * * @return void */ function del($key) { $this->offsetUnset($key); } }