You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
884 B
39 lines
884 B
<?php
|
|
|
|
namespace IQBall\App\Session;
|
|
|
|
use IQBall\Core\Data\Account;
|
|
|
|
/**
|
|
* A PHP session handle
|
|
*/
|
|
class PhpSessionHandle implements MutableSessionHandle {
|
|
public static function init(): self {
|
|
if (session_status() !== PHP_SESSION_NONE) {
|
|
throw new \Exception("A php session is already started !");
|
|
}
|
|
session_start();
|
|
return new PhpSessionHandle();
|
|
}
|
|
|
|
public function getAccount(): ?Account {
|
|
return $_SESSION["account"] ?? null;
|
|
}
|
|
|
|
public function getInitialTarget(): ?string {
|
|
return $_SESSION["target"] ?? null;
|
|
}
|
|
|
|
public function setAccount(Account $account): void {
|
|
$_SESSION["account"] = $account;
|
|
}
|
|
|
|
public function setInitialTarget(?string $url): void {
|
|
$_SESSION["target"] = $url;
|
|
}
|
|
|
|
public function destroy(): void {
|
|
session_destroy();
|
|
}
|
|
}
|