コード例 #1
0
 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;
 }
コード例 #2
0
 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;
     }
 }