| Current Path : /home/seto/indexator.pm/src/Core/ |
| Current File : /home/seto/indexator.pm/src/Core/Request.php |
<?php
namespace App\Core;
class Request
{
private string $method;
private string $path;
public function __construct()
{
$this->method = strtoupper($_SERVER['REQUEST_METHOD'] ?? 'GET');
$uri = $_SERVER['REQUEST_URI'] ?? '/';
$this->path = parse_url($uri, PHP_URL_PATH) ?? '/';
}
public function getMethod(): string
{
return $this->method;
}
public function getPath(): string
{
return $this->path;
}
public function isPost(): bool
{
return $this->method === 'POST';
}
public function isGet(): bool
{
return $this->method === 'GET';
}
public function post(string $key, mixed $default = null): mixed
{
return $_POST[$key] ?? $default;
}
public function postArray(string $key): array
{
$value = $_POST[$key] ?? [];
return is_array($value) ? $value : [];
}
public function get(string $key, mixed $default = null): mixed
{
return $_GET[$key] ?? $default;
}
public function getInt(string $key, int $default = 0): int
{
return isset($_GET[$key]) ? (int) $_GET[$key] : $default;
}
public function file(string $key): ?array
{
return isset($_FILES[$key]) && $_FILES[$key]['error'] !== UPLOAD_ERR_NO_FILE
? $_FILES[$key]
: null;
}
public function ip(): string
{
return $_SERVER['REMOTE_ADDR'] ?? '0.0.0.0';
}
}