Copied!
<?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();
			}
		}
	}
© 2026 Bruce Wells
Search Namespaces \ Classes
Configuration