http

Форк
0
/
Request.php 
75 строк · 1.6 Кб
1
<?php
2

3
declare(strict_types=1);
4

5
namespace Upside\Http;
6

7
final class Request
8
{
9
    private array $get;
10
    private array $post;
11
    private array $cookies;
12
    private array $files;
13
    private array $server;
14
    private array $params;
15

16
    public function __construct(
17
        array $get = [],
18
        array $post = [],
19
        array $cookies = [],
20
        array $files = [],
21
        array $server = [],
22
        array $parameters = [],
23
    )
24
    {
25
        $this->get = $get;
26
        $this->post = $post;
27
        $this->cookies = $cookies;
28
        $this->files = $files;
29
        $this->server = $server;
30
        $this->params = $parameters;
31
    }
32

33
    public static function from_globals(): Request
34
    {
35
        return new Request($_GET, $_POST, $_COOKIE, $_FILES, $_SERVER);
36
    }
37

38
    public function with_params(array $parameters): Request
39
    {
40
        $request = clone $this;
41
        $request->params = $parameters;
42

43
        return $request;
44
    }
45

46
    public function get_params(): array
47
    {
48
        return $this->params;
49
    }
50

51
    public function get_param(string $key, mixed $default = null): mixed
52
    {
53
        return $this->params[$key] ?? $default;
54
    }
55

56
    public function get(string $key, mixed $default = null): mixed
57
    {
58
        return $this->get[$key] ?? $default;
59
    }
60

61
    public function post(string $key, mixed $default = null): mixed
62
    {
63
        return $this->post[$key] ?? $default;
64
    }
65

66
    public function cookie(string $key, mixed $default = null): mixed
67
    {
68
        return $this->cookies[$key] ?? $default;
69
    }
70

71
    public function get_path(): string
72
    {
73
        return $this->server['PATH_INFO'] ?? '/';
74
    }
75
}
76

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.