<?php
namespace Example\Tool;
class SessionManager
{
public static function getDirectory() : string
{
return PROJECT_ROOT . '/session';
}
public static function purgeOld(int $secondsBack = 7200) : void
{
$endTime = \time() - $secondsBack;
foreach (\glob(self::getDirectory() . '/*') as $file)
{
if (\filemtime($file) < $endTime)
{
\unlink($file);
}
}
}
public static function start() : void
{
try
{
$lifetime = 30 * 24 * 60 * 60;
\ini_set('session.gc_maxlifetime', $lifetime);
\ini_set('session.use_cookies', 1);
\ini_set('session.cookie_lifetime', $lifetime);
\ini_set('session.gc_divisor', '1');
\ini_set('session.gc_probability', '1');
\session_set_cookie_params($lifetime);
\session_save_path(self::getDirectory());
\session_start();
\PHPFUI\Session::cycleFlash();
}
catch (\Exception $e)
{
$_SESSION = [];
\session_write_close();
\session_start();
}
}
}