= self::MAX_REQUESTS) { return false; } set_transient($key, $requests + 1, self::WINDOW_SECONDS); return true; } public static function get_remaining_requests($identifier): int { $key = self::RATE_LIMIT_KEY . $identifier; $requests = get_transient($key); if ($requests === false) { return self::MAX_REQUESTS; } return max(0, self::MAX_REQUESTS - $requests); } }