You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.7 KiB
64 lines
1.7 KiB
<?php
|
|
/**
|
|
* A very simple request class that handles form inputs.
|
|
* Based on the code of Symphony framework, (c) Fabien Potencier <fabien@symfony.com>
|
|
*
|
|
* @link https://github.com/laravel/framework/blob/6.x/src/Illuminate/Http/Request.php
|
|
* @link https://github.com/symfony/symfony/blob/4.4/src/Symfony/Component/HttpFoundation/ParameterBag.php
|
|
*/
|
|
class RWMB_Request {
|
|
private $get_data = [];
|
|
private $post_data = [];
|
|
|
|
public function __construct() {
|
|
// @codingStandardsIgnoreLine
|
|
$this->get_data = $_GET;
|
|
// @codingStandardsIgnoreLine
|
|
$this->post_data = $_POST;
|
|
}
|
|
|
|
public function set_get_data( array $data ) {
|
|
$this->get_data = array_merge( $this->get_data, $data );
|
|
}
|
|
|
|
public function set_post_data( array $data ) {
|
|
$this->post_data = array_merge( $this->post_data, $data );
|
|
}
|
|
|
|
public function get( string $name, $default = null ) {
|
|
return $this->get_data[ $name ] ?? $default;
|
|
}
|
|
|
|
public function post( string $name, $default = null ) {
|
|
return $this->post_data[ $name ] ?? $default;
|
|
}
|
|
|
|
/**
|
|
* Filter a GET parameter.
|
|
*
|
|
* @param string $name Parameter name.
|
|
* @param int $filter FILTER_* constant.
|
|
* @param mixed $options Filter options.
|
|
*
|
|
* @return mixed
|
|
*/
|
|
public function filter_get( string $name, $filter = FILTER_DEFAULT, $options = [] ) {
|
|
$value = $this->get( $name );
|
|
return filter_var( $value, $filter, $options );
|
|
}
|
|
|
|
/**
|
|
* Filter a POST parameter.
|
|
*
|
|
* @param string $name Parameter name.
|
|
* @param int $filter FILTER_* constant.
|
|
* @param mixed $options Filter options.
|
|
*
|
|
* @return mixed
|
|
*/
|
|
public function filter_post( string $name, $filter = FILTER_DEFAULT, $options = [] ) {
|
|
$value = $this->post( $name );
|
|
return filter_var( $value, $filter, $options );
|
|
}
|
|
}
|