| Current Path : /home/seto/indexator.pm/src/Core/ |
| Current File : /home/seto/indexator.pm/src/Core/Session.php |
<?php
namespace App\Core;
class Session
{
private static bool $started = false;
public static function start(): void
{
if (!self::$started) {
session_start();
self::$started = true;
}
}
public static function set(string $key, mixed $value): void
{
$_SESSION[$key] = $value;
}
public static function get(string $key, mixed $default = null): mixed
{
return $_SESSION[$key] ?? $default;
}
public static function has(string $key): bool
{
return isset($_SESSION[$key]);
}
public static function remove(string $key): void
{
unset($_SESSION[$key]);
}
public static function flash(string $key, mixed $value): void
{
$_SESSION['_flash'][$key] = $value;
}
public static function getFlash(string $key, mixed $default = null): mixed
{
$value = $_SESSION['_flash'][$key] ?? $default;
unset($_SESSION['_flash'][$key]);
return $value;
}
public static function isAuthenticated(): bool
{
return $_SESSION['authenticated'] ?? false;
}
public static function isAdmin(): bool
{
return ($_SESSION['username'] ?? '') === 'admin';
}
public static function regenerate(): void
{
session_regenerate_id(true);
}
public static function destroy(): void
{
$_SESSION = [];
session_destroy();
self::$started = false;
}
}