Класс Request

<?php
class Request
{
    private $request = [];
    private $server = [];
    private $files = [];

    public function __get($name)
    {
        return $this->get($name);
    }

    public function equals($key, $value) {
        return $this->get($key) == $value;
    }

    public function in($key, $value) {
        return in_array($value, $this->get($key));
    }

    public function __construct()
    {
        $this->request = $_REQUEST;
        $this->server = $_SERVER;
        $this->files = $_FILES;
    }
    
    public function isEmpty() {
        return empty($this->request);
    }

    public function isEmptyGet() {
        return $this->isEmpty() && $this->isGet();
    }

    public function isEmptyPost() {
        return $this->isEmpty() && $this->isPost();
    }

    public function isNotEmpty() {
        return !empty($this->request);
    }

    public function isNotEmptyPost() {
        return $this->isNotEmpty() && $this->isPost();
    }

    public function isNotEmptyGet() {
        return $this->isNotEmpty() && $this->isGet();
    }

    public function get($name, $default = null)
    {
        if ($this->has($name)) {
            return $this->request[$name];
        }
        return $default;
    }

    public function has($name)
    {
        return isset($this->request[$name]);
    }

    public function all()
    {
        return $this->request;
    }

    public function backUrl() 
    {
        return $this->server['HTTP_REFERER'];
    }

    public function method()
    {
        return $this->server['REQUEST_METHOD'];
    }

    public function isPost() {
        return $this->method() == 'POST';
    }

    public function isGet() {
        return $this->method() == 'GET';
    }

    public function ip()
    {
        if (!empty($this->server['HTTP_CLIENT_IP'])) {
            return $this->server['HTTP_CLIENT_IP'];
        } elseif (!empty($this->get['HTTP_X_FORWARED_FOR'])) {
            return $this->server['HTTP_X_FORWARED_FOR'];
        } else {
            return $this->server['REMOTE_ADDR'];
        }
    }

    public function dd()
    {
        // $dumpArray = array_merge($this->request, ['files' => $this->files]);
        echo '<pre>';
        var_dump($this->request);
        echo '</pre>';
        die;
    }

    public function header($name) {
        $name = trim(strtoupper($name));
        return $this->server["HTTP_$name"];
    }

    public function allHeaders()
    {
        return apache_request_headers();
    }

    public function files() {
        return $this->files;
    }
    

    public function file($name) {
        return $this->files[$name];
    }

    public function notEmptyFiles()
    {
        return !empty($this->files);
    }
}

Проверенный хостинг

Beget

Международный хостинг-провайдер, аккредитованный национальный и международный регистратор доменных имён.

Timeweb

Сервис, предоставляющий широкий спектр услуг в области веб-хостинга и виртуальных серверов.

Заказать кастомную разработку

Корпоративные порталы
  • Веб-дизайн
  • Фронт-энд
  • Бэк-энд
  • Контент
  • PM
Мобильные приложения
  • Веб-дизайн
  • Фронт-энд
  • Бэк-энд
  • Контент
  • PM
Разработка ИТ-продукта
  • Веб-дизайн
  • Фронт-энд
  • Бэк-энд
  • Контент
  • PM