73 lines
1.4 KiB
PHP
73 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace lib\Core\Http;
|
|
|
|
class Session extends Http
|
|
{
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->init();
|
|
}
|
|
|
|
// 세션 시작
|
|
public function init(): void
|
|
{
|
|
if (session_status() === PHP_SESSION_NONE) {
|
|
if (!is_dir(APP_SESSION_PATH)) {
|
|
mkdir(APP_SESSION_PATH, APP_SESSION_PERMISSION, true);
|
|
}
|
|
session_save_path(APP_SESSION_PATH);
|
|
session_start();
|
|
}
|
|
}
|
|
|
|
// 세션에 값 저장
|
|
public function set(string $key, $value): void
|
|
{
|
|
$_SESSION[$key] = $value;
|
|
}
|
|
|
|
// 세션에서 값 가져오기
|
|
public function get(string $key): mixed
|
|
{
|
|
return $_SESSION[$key] ?? null;
|
|
}
|
|
|
|
// 세션에서 값 삭제
|
|
public function remove(string $key): void
|
|
{
|
|
unset($_SESSION[$key]);
|
|
}
|
|
|
|
// 세션에 에러 메시지 설정
|
|
public function flash(string $key, $message): void
|
|
{
|
|
$_SESSION['flash'][$key] = $message;
|
|
}
|
|
|
|
// 세션에 입력값 설정 (입력값 유지)
|
|
public function flashInput(array $input): void
|
|
{
|
|
$_SESSION['flash']['input'] = $input;
|
|
}
|
|
|
|
// 세션에 flash 메시지가 있는지 확인
|
|
public function hasFlash(string $key): bool
|
|
{
|
|
return isset($_SESSION['flash'][$key]);
|
|
}
|
|
|
|
// flash 메시지 가져오기
|
|
public function getFlash(string $key): mixed
|
|
{
|
|
return $_SESSION['flash'][$key] ?? null;
|
|
}
|
|
|
|
// flash 메시지 삭제
|
|
public function clearFlash(): void
|
|
{
|
|
unset($_SESSION['flash']);
|
|
}
|
|
}
|