for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php declare(strict_types=1);
namespace Suricate;
use Exception;
/**
* @property string $type Session type
*/
class Session extends Service implements Interfaces\ISession
{
protected $parametersList = ['type'];
private static $container;
protected function init()
if (self::$container === null) {
switch ($this->type) {
case 'native':
self::$container = Suricate::SessionNative(true);
break;
case 'cookie':
self::$container = Suricate::SessionCookie(true);
case 'memcache':
self::$container = Suricate::SessionMemcache(true);
case 'none':
default:
throw new Exception("Unknown session type " . $this->type);
}
* Get instance of session driver used
* @return Session driver instance
public function getInstance()
$this->init();
return self::$container;
public function getId()
return self::$container->getId();
public function regenerate()
return self::$container->regenerate();
public function read($key)
return self::$container->read($key);
public function write($key, $data)
return self::$container->write($key, $data);
public function destroy($key)
return self::$container->destroy($key);
public function close()
return self::$container->close();