public static function cookie($application, $name) { if (is_object($application) && $application instanceof Application) { } else { throw new Exception(__METHOD__, "\$application must be an instance of Application."); } if (is_string($name)) { } else { throw new Exception(__METHOD__, "\$name must be a string."); } if (!is_string($id = $application->request()->cookie($name))) { // Generate a session id and save it in cookies $id = hash("sha256", time() + uniqid(mt_rand(0, time()), true)); $application->response()->cookie($name, $id); // Check if this session id already exists // ... } // Create a new session $session = new Session($application, $id); $session->get(array()); $session->set(["__session"], $id); return $session; }
public function session() { if (!is_object($this->session) || !$this->session instanceof Session) { $this->session = Session::cookie($this, $this->configuration(["session", "cookie_name"])); } if (func_num_args() > 0) { return call_user_func_array(array($this->session, func_get_arg(0)), array_slice(func_get_args(), 1)); } else { return $this->session; } }