get(self::KEY) ?? []; // keep map bounded if (count($map) > 50) { $map = array_filter($map, fn($ts) => $ts > time()); } $map[$bookId] = time() + $ttl; session()->set(self::KEY, $map); } public static function has(string $bookId): bool { $map = session()->get(self::KEY) ?? []; return isset($map[$bookId]) && $map[$bookId] > time(); } }