torneos/app/Core/Request.php

41 lines
967 B
PHP

<?php
namespace App\Core;
final class Request
{
public static function json(): array
{
$body = file_get_contents('php://input') ?: '';
if ($body === '') {
return [];
}
$data = json_decode($body, true);
return is_array($data) ? $data : [];
}
public static function query(string $key, mixed $default = null): mixed
{
return $_GET[$key] ?? $default;
}
public static function bearerToken(): ?string
{
$header = $_SERVER['HTTP_AUTHORIZATION']
?? $_SERVER['REDIRECT_HTTP_AUTHORIZATION']
?? '';
if ($header === '' && function_exists('apache_request_headers')) {
$headers = apache_request_headers();
$header = $headers['Authorization'] ?? $headers['authorization'] ?? '';
}
if (str_starts_with($header, 'Bearer ')) {
return substr($header, 7);
}
return null;
}
}