Files
api-wipay/src/Helpers/SessionHelper.php
2026-01-26 09:27:28 +07:00

74 lines
1.7 KiB
PHP

<?php
namespace App\Helpers;
class SessionHelper
{
private static $sessionFile;
private static function getSessionFile()
{
if (self::$sessionFile === null) {
$storageDir = __DIR__ . "/../../storage";
if (!file_exists($storageDir)) {
mkdir($storageDir, 0777, true);
}
self::$sessionFile = $storageDir . "/telegram_sessions.json";
}
return self::$sessionFile;
}
/**
* Load all sessions
*/
public static function loadSessions()
{
$file = self::getSessionFile();
if (!file_exists($file)) {
file_put_contents($file, json_encode(["sessions" => []], JSON_PRETTY_PRINT));
}
$json = json_decode(file_get_contents($file), true);
return $json["sessions"] ?? [];
}
/**
* Save all sessions
*/
public static function saveSessions($sessions)
{
$file = self::getSessionFile();
file_put_contents($file, json_encode(["sessions" => $sessions], JSON_PRETTY_PRINT));
}
/**
* Get session for a chat ID
*/
public static function getSession($chatId)
{
$sessions = self::loadSessions();
return $sessions[$chatId] ?? null;
}
/**
* Set session for a chat ID
*/
public static function setSession($chatId, $value)
{
$sessions = self::loadSessions();
$sessions[$chatId] = $value;
self::saveSessions($sessions);
}
/**
* Clear session for a chat ID
*/
public static function clearSession($chatId)
{
$sessions = self::loadSessions();
unset($sessions[$chatId]);
self::saveSessions($sessions);
}
}