MIF_E31222691/system/session/cookie.php

57 lines
1.0 KiB
PHP

<?php namespace System\Session;
use System\Crypt;
use System\Config;
class Cookie implements Driver {
public function __construct()
{
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(Crypt::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'));
\System\Cookie::put('session_payload', Crypt::encrypt(serialize($session)), $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');
}
}