cookie = $cookie; $this->crypter = $crypter; } /** * Load a session by ID. * * This method is responsible for retrieving the session from persistant storage. If the * session does not exist in storage, nothing should be returned from the method, in which * case a new session will be created by the base driver. * * @param string $id * @return array */ protected function load($id) { if ($this->cookie->has('session_payload')) { return unserialize($this->crypter->decrypt($this->cookie->get('session_payload'))); } } /** * Save the session to persistant storage. * * @param array $session * @return void */ protected function save($session) { if ( ! headers_sent()) { $config = $this->config->get('session'); extract($config); $payload = $this->crypter->encrypt(serialize($session)); $this->cookie->put('session_payload', $payload, $lifetime, $path, $domain); } } /** * Delete the session from persistant storage. * * @param string $id * @return void */ protected function delete($id) { $this->cookie->forget('session_payload'); } }