2014-01-23 12:09:48 +01:00
|
|
|
<?php
|
2016-02-08 15:41:00 +01:00
|
|
|
/* Icinga Web 2 | (c) 2013 Icinga Development Team | GPLv2+ */
|
2014-01-23 12:09:48 +01:00
|
|
|
|
|
|
|
namespace Icinga\Web;
|
|
|
|
|
2014-03-25 11:12:55 +01:00
|
|
|
use Icinga\Web\Session\PhpSession;
|
|
|
|
use Icinga\Web\Session\Session as BaseSession;
|
2014-01-23 12:09:48 +01:00
|
|
|
use Icinga\Exception\ProgrammingError;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Session container
|
|
|
|
*/
|
|
|
|
class Session
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* The current session
|
|
|
|
*
|
|
|
|
* @var BaseSession $session
|
|
|
|
*/
|
|
|
|
private static $session;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Create the session
|
|
|
|
*
|
|
|
|
* @param BaseSession $session
|
|
|
|
*
|
|
|
|
* @return BaseSession
|
|
|
|
*/
|
|
|
|
public static function create(BaseSession $session = null)
|
|
|
|
{
|
|
|
|
if ($session === null) {
|
2018-01-24 17:38:20 +01:00
|
|
|
self::$session = PhpSession::create();
|
2014-01-23 12:09:48 +01:00
|
|
|
} else {
|
|
|
|
self::$session = $session;
|
|
|
|
}
|
|
|
|
|
|
|
|
return self::$session;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Return the current session
|
|
|
|
*
|
|
|
|
* @return BaseSession
|
2014-01-23 14:40:59 +01:00
|
|
|
* @throws ProgrammingError
|
2014-01-23 12:09:48 +01:00
|
|
|
*/
|
|
|
|
public static function getSession()
|
|
|
|
{
|
|
|
|
if (self::$session === null) {
|
2014-09-02 13:23:15 +02:00
|
|
|
self::create();
|
2014-01-23 12:09:48 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
return self::$session;
|
|
|
|
}
|
|
|
|
}
|