Класс Request для работы с параметрами запросами

Класс Request для работы с параметрами запросами

Класс Request для работы с параметрами запросами

С запросами в PHP приходиться работать постоянно. Поэтому, далее будет представлен скрипт класса Request, упрощающий работу с параметрам запроса в PHP.

Как известно в PHP есть суперглобальный массив $_REQUEST, который содержит в себе все данные GET и POST запросов.

class Request
{
    private $storage; // переменная хранящая данные GET и POST

    
    // при создании объекта запроса мы пропускаем все данные
    // через фильтр-функцию для очистки параметров от нежелательных данных
    public function __construct() {
        $this->storage = $this->cleanInput($_REQUEST);
    }

    // магическая функция, которая позволяет обращатья к GET и POST переменным
    // по имени, например, 
    // запрос - myrusakov.ru/user.php?id=Qashbs36e
    // в коде - echo $request -> id
    public function __get($name) {
        if (isset($this->storage[$name])) return $this->storage[$name];
    }
    
    
    // очистка данных от опасных символов
    private function cleanInput($data) {
        if (is_array($data)) {
            $cleaned = [];
            foreach ($data as $key => $value) {
                $cleaned[$key] = $this->cleanInput($value);
            }
            return $cleaned;
        }
        return trim(htmlspecialchars($data, ENT_QUOTES));
    }

    
    // возвращаем содержимое хранилища
    public function getRequestEntries()
    {
        return $this -> storage;
    }
}

Файл from.html

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Input Form</title>
</head>
<body>
    <form action="process.php" method = "get">
        <label for = "name">Имя</label>
        <input id = "name" name = "name"/>
        <hr/>
        <label for  = "phone">Телефон</label>
        <input id = "phone" name = "phone">
        <input type = "submit" value = "Далее" />
    </form>
</body>
</html>

Файл process.php:

<?php


spl_autoload_register();


$request = new Request(); // создаем объект класса Request

// а здесь обращаемся к значениям, заполненных пользователем
echo sprintf("Имя: %s, Телефон: %s", $request -> name, $request -> phone);

Вот такой скрипт позволит упростить работу с массивом $_REQUEST в PHP.