mirror of
https://github.com/phpbb/phpbb.git
synced 2025-07-31 05:50:42 +02:00
[feature/request-class] Add server(), header() and is_ajax() to request
Extend the request class with helpers for reading server vars (server()) and HTTP request headers (header()). Refactor the existing code base to make use of these helpers, make $_SERVER a deactivated super global. Also introduce an is_ajax() method, which checks the X-Requested-With header for the value 'XMLHttpRequest', which is sent by JavaScript libraries, such as jQuery. PHPBB3-9716
This commit is contained in:
@@ -11,12 +11,13 @@ class phpbb_mock_request implements phpbb_request_interface
|
||||
{
|
||||
protected $data;
|
||||
|
||||
public function __construct($get = array(), $post = array(), $cookie = array(), $request = false)
|
||||
public function __construct($get = array(), $post = array(), $cookie = array(), $server = array(), $request = false)
|
||||
{
|
||||
$this->data[phpbb_request_interface::GET] = $get;
|
||||
$this->data[phpbb_request_interface::POST] = $post;
|
||||
$this->data[phpbb_request_interface::COOKIE] = $cookie;
|
||||
$this->data[phpbb_request_interface::REQUEST] = ($request === false) ? $post + $get : $request;
|
||||
$this->data[phpbb_request_interface::SERVER] = $server;
|
||||
}
|
||||
|
||||
public function overwrite($var_name, $value, $super_global = phpbb_request_interface::REQUEST)
|
||||
@@ -24,11 +25,23 @@ class phpbb_mock_request implements phpbb_request_interface
|
||||
$this->data[$super_global][$var_name] = $value;
|
||||
}
|
||||
|
||||
public function variable($var_name, $default, $multibyte = false, $super_global = phpbb_request_interface::REQUEST)
|
||||
public function variable($var_name, $default, $multibyte = false, $super_global = phpbb_request_interface::REQUEST, $html_encode = true)
|
||||
{
|
||||
return isset($this->data[$super_global][$var_name]) ? $this->data[$super_global][$var_name] : $default;
|
||||
}
|
||||
|
||||
public function server($var_name, $default = '', $html_encode = false)
|
||||
{
|
||||
$super_global = phpbb_request_interface::SERVER;
|
||||
return isset($this->data[$super_global][$var_name]) ? $this->data[$super_global][$var_name] : $default;
|
||||
}
|
||||
|
||||
public function header($header_name, $default = '', $html_encode = false)
|
||||
{
|
||||
$var_name = 'HTTP_'.str_replace('-', '_', strtoupper($header_name));
|
||||
return $this->server($var_name, $default, $html_encode);
|
||||
}
|
||||
|
||||
public function is_set_post($name)
|
||||
{
|
||||
return $this->is_set($name, phpbb_request_interface::POST);
|
||||
@@ -39,8 +52,26 @@ class phpbb_mock_request implements phpbb_request_interface
|
||||
return isset($this->data[$super_global][$var]);
|
||||
}
|
||||
|
||||
public function is_ajax()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public function variable_names($super_global = phpbb_request_interface::REQUEST)
|
||||
{
|
||||
return array_keys($this->data[$super_global]);
|
||||
}
|
||||
|
||||
/* custom methods */
|
||||
|
||||
public function set_header($header_name, $value)
|
||||
{
|
||||
$var_name = 'HTTP_'.str_replace('-', '_', strtoupper($header_name));
|
||||
$this->data[phpbb_request_interface::SERVER][$var_name] = $value;
|
||||
}
|
||||
|
||||
public function merge($super_global = phpbb_request_interface::REQUEST, $values)
|
||||
{
|
||||
$this->data[$super_global] = array_merge($this->data[$super_global], $values);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user