<?php
namespace Jaxon\Utils\Session;
use Jaxon\Contracts\Session as SessionContract;
class Manager implements SessionContract
{
/**
* Get the current session id
*
* @return string The session id
*/
public function getId()
{
return session_id();
}
/**
* Generate a new session id
*
* @param bool $bDeleteData Whether to delete data from the previous session
*
* @return void
*/
public function newId($bDeleteData = false)
{
session_regenerate_id($bDeleteData);
}
/**
* Save data in the session
*
* @param string $sKey The session key
* @param string $xValue The session value
*
* @return void
*/
public function set($sKey, $xValue)
{
$_SESSION[$sKey] = $xValue;
}
/**
* Save data in the session, that will be available only until the next call
*
* @param string $sKey The session key
* @param string $xValue The session value
*
* @return void
*/
/* public function flash($sKey, $xValue)
{
}*/
/**
* Check if a session key exists
*
* @param string $sKey The session key
*
* @return bool True if the session key exists, else false
*/
public function has($sKey)
{
return key_exists($sKey, $_SESSION);
}
/**
* Get data from the session
*
* @param string $sKey The session key
* @param string|null $xDefault The default value
*
* @return mixed The data under the session key, or the $xDefault parameter
*/
public function get($sKey, $xDefault = null)
{
return key_exists($sKey, $_SESSION) ? $_SESSION[$sKey] : $xDefault;
}
/**
* Get all data in the session
*
* @return array An array of all data in the session
*/
public function all()
{
return $_SESSION;
}
/**
* Delete a session key and its data
*
* @param string $sKey The session key
*
* @return void
*/
public function delete($sKey)
{
if(key_exists($sKey, $_SESSION))
{
unset($_SESSION[$sKey]);
}
}
/**
* Delete all data in the session
*
* @return void
*/
public function clear()
{
session_unset();
}
}
|