| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 | <?php namespace System\Session;use System\Config;use System\Crypter;class Cookie implements Driver {	/**	 * The Crypter instance.	 *	 * @var Crypter	 */	private $crypter;	/**	 * Create a new Cookie session driver instance.	 *	 * @return void	 */	public function __construct()	{		$this->crypter = new Crypter;		if (Config::get('application.key') == '')		{			throw new \Exception("You must set an application key before using the Cookie session driver.");		}	}	/**	 * Load a session by ID.	 *	 * @param  string  $id	 * @return array	 */	public function load($id)	{		if (\System\Cookie::has('session_payload'))		{			return unserialize($this->crypter->decrypt(\System\Cookie::get('session_payload')));		}	}	/**	 * Save a session.	 *	 * @param  array  $session	 * @return void	 */	public function save($session)	{		if ( ! headers_sent())		{			extract(Config::get('session'));			$payload = $this->crypter->encrypt(serialize($session));			\System\Cookie::put('session_payload', $payload, $lifetime, $path, $domain, $https, $http_only);		}	}	/**	 * Delete a session by ID.	 *	 * @param  string  $id	 * @return void	 */	public function delete($id)	{		\System\Cookie::forget('session_payload');	}}
 |