diff options
Diffstat (limited to 'src/DTS')
| -rw-r--r-- | src/DTS/Session.php | 41 | 
1 files changed, 41 insertions, 0 deletions
diff --git a/src/DTS/Session.php b/src/DTS/Session.php new file mode 100644 index 0000000..956f4e5 --- /dev/null +++ b/src/DTS/Session.php @@ -0,0 +1,41 @@ +<?php + +declare(strict_types=1); + +namespace DTS; + +class Session +{ +    private static ?self $instance = null; + +    private array $session; + +    public static function getInstance() +    { +        if (!self::$instance) { +            self::$instance = new self(); +        } + +        return self::$instance; +    } + +    private function __construct() +    { +        session_start(); + +        foreach ($_SESSION as $key => $value) { +            $this->session[$key] = $value; +            unset($_SESSION[$key]); +        } +    } + +    public function set(string $key, string $value): void +    { +        $this->session[$key] = $_SESSION[$key] = $value; +    } + +    public function get(string $key): ?string +    { +        return $this->session[$key] ?? null; +    } +}  | 
