MediaWiki REL1_39
DerivativeRequest Class Reference

Similar to FauxRequest, but only fakes URL parameters and method (POST or GET) and use the base request for the remaining stuff (cookies, session and headers). More...

Inheritance diagram for DerivativeRequest:
Collaboration diagram for DerivativeRequest:

Public Member Functions

 __construct (WebRequest $base, $data, $wasPosted=false)
 
 getAcceptLang ()
 Parse the Accept-Language header sent by the client into an array.
 
 getAllHeaders ()
 Get an array containing all request headers.
 
 getCookie ( $key, $prefix=null, $default=null)
 Get a cookie from the $_COOKIE jar.
 
 getElapsedTime ()
 Get the number of seconds to have elapsed since request start, in fractional seconds, with microsecond resolution.
 
 getHeader ( $name, $flags=0)
 Get a request header, or false if it isn't set.
 
 getIP ()
 Work out the IP address based on various globals For trusted proxies, use the XFF client IP (first of the chain)
 
 getProtocol ()
 Get the current URL protocol (http or https)
 
 getSession ()
 Return the session for this request.
 
 getSessionData ( $key)
 Get data from the session.
 
 getUpload ( $key)
 Return a FauxRequestUpload object corresponding to the key.
 
 setIP ( $ip)
 
 setSessionData ( $key, $data)
 
- Public Member Functions inherited from FauxRequest
 __construct ( $data=[], $wasPosted=false, $session=null, $protocol='http')
 
 getMethod ()
 Get the HTTP method used for this request.
 
 getPostValues ()
 Get the values passed via POST.
 
 getQueryValues ()
 
 getRawInput ()
 FauxRequests shouldn't depend on raw request data (but that could be implemented here)
 
 getRawPostString ()
 FauxRequests shouldn't depend on raw request data (but that could be implemented here)
 
 getRawQueryString ()
 FauxRequests shouldn't depend on raw request data (but that could be implemented here)
 
 getRequestURL ()
 
 getSessionArray ()
 
 getText ( $name, $default='')
 
 setCookie ( $key, $value, $prefix=null)
 
 setCookies ( $cookies, $prefix=null)
 
 setHeader ( $name, $val)
 
 setHeaders ( $headers)
 
 setRequestURL ( $url)
 
 setUpload ( $key, $data)
 Set fake upload data for one file with specific key.
 
 setUploadData ( $uploadData)
 Set fake upload data for all files.
 
 wasPosted ()
 
- Public Member Functions inherited from WebRequest
 __construct ()
 
 appendQueryArray ( $array)
 Appends or replaces value of query variables.
 
 appendQueryValue ( $key, $value)
 
 getArray ( $name, $default=null)
 Fetch an array from the input or return $default if it's not set.
 
 getBool ( $name, $default=false)
 Fetch a boolean value from the input or return $default if not set.
 
 getCheck ( $name)
 Return true if the named value is set in the input, whatever that value is (even "0").
 
 getCrossSiteCookie ( $key, $prefix='', $default=null)
 Get a cookie set with SameSite=None possibly with a legacy fallback cookie.
 
 getFileName ( $key)
 Return the original filename of the uploaded file, as reported by the submitting user agent.
 
 getFileTempname ( $key)
 Return the path to the temporary file where PHP has stored the upload.
 
 getFloat ( $name, $default=0.0)
 Fetch a floating point value from the input or return $default if not set.
 
 getFullRequestURL ()
 Return the request URI with the canonical service and hostname, path, and query string.
 
 getFuzzyBool ( $name, $default=false)
 Fetch a boolean value from the input or return $default if not set.
 
 getInt ( $name, $default=0)
 Fetch an integer value from the input or return $default if not set.
 
 getIntArray ( $name, $default=null)
 Fetch an array of integers, or return $default if it's not set.
 
 getIntOrNull ( $name)
 Fetch an integer value from the input or return null if empty.
 
 getLimitOffsetForUser (UserIdentity $user, $deflimit=50, $optionname='rclimit')
 Check for limit and offset parameters on the input, and return sensible defaults if not given.
 
 getQueryValuesOnly ()
 Get the values passed in the query string only, not including the path router parameters.
 
 getRawVal ( $name, $default=null)
 Fetch a string WITHOUT any Unicode or line break normalization.
 
 getSessionId ()
 Get the session id for this request, if any.
 
 getUploadError ( $key)
 Return the upload error or 0.
 
 getVal ( $name, $default=null)
 Fetch a text string and partially normalized it.
 
 getValueNames ( $exclude=[])
 Returns the names of all input values excluding those in $exclude.
 
 getValues (... $names)
 Extracts the (given) named values into an array.
 
 hasSafeMethod ()
 Check if this request uses a "safe" HTTP method.
 
 interpolateTitle ()
 Check for title, action, and/or variant data in the URL and interpolate it into the GET variables.
 
 isSafeRequest ()
 Whether this request should be identified as being "safe".
 
 markAsSafeRequest ()
 Mark this request as identified as being nullipotent even if it is a POST request.
 
 matchURLForCDN (array $cdnUrls)
 Determine if the request URL matches one of a given set of canonical CDN URLs.
 
 normalizeUnicode ( $data)
 Recursively normalizes UTF-8 strings in the given array.
 
 response ()
 Return a handle to WebResponse style object, for setting cookies, headers and other stuff, for Request being worked on.
 
 setSessionId (SessionId $sessionId)
 Set the session for this request.
 
 setVal ( $key, $value)
 Set an arbitrary value into our get/post data.
 
 unsetVal ( $key)
 Unset an arbitrary value from our get/post data.
 

Additional Inherited Members

- Static Public Member Functions inherited from WebRequest
static canonicalizeIPv6LoopbackAddress ( $ip)
 Converts ::1 (IPv6 loopback address) to 127.0.0.1 (IPv4 loopback address); assists in matching trusted proxies.
 
static detectProtocol ()
 Detect the protocol from $_SERVER.
 
static detectServer ( $assumeProxiesUseDefaultProtocolPorts=null)
 Work out an appropriate URL prefix containing scheme and host, based on information detected from $_SERVER.
 
static extractTitle ( $path, $bases, $key=false)
 URL rewriting function; tries to extract page title and, optionally, one other fixed parameter value from a URL path.
 
static getGlobalRequestURL ()
 Return the path and query string portion of the main request URI.
 
static getRequestId ()
 Get the current request ID.
 
static getRequestPathSuffix ( $basePath)
 If the request URL matches a given base path, extract the path part of the request URL after that base, and decode escape sequences in it.
 
static overrideRequestId ( $id)
 Override the unique request ID.
 
- Public Attributes inherited from WebRequest
const GETHEADER_LIST = 1
 Flag to make WebRequest::getHeader return an array of values.
 
- Protected Member Functions inherited from FauxRequest
 getRawIP ()
 
 initHeaders ()
 Initialise the header list.
 
- Static Protected Member Functions inherited from WebRequest
static getPathInfo ( $want='all')
 Extract relevant query arguments from the http request uri's path to be merged with the normal php provided query arguments.
 
- Protected Attributes inherited from FauxRequest
 $cookies = []
 
- Protected Attributes inherited from WebRequest
array $data
 The parameters from $_GET, $_POST and the path router.
 
string[] $headers = []
 Lazy-initialized request headers indexed by upper-case header name.
 
bool $markedAsSafe = false
 Whether this HTTP request is "safe" (even if it is an HTTP post)
 
string $protocol
 Cached URL protocol.
 
string[] $queryAndPathParams
 The parameters from $_GET.
 
string[] $queryParams
 The parameters from $_GET only.
 
float $requestTime
 The timestamp of the start of the request, with microsecond precision.
 
SessionId null $sessionId = null
 Session ID to use for this request.
 

Detailed Description

Similar to FauxRequest, but only fakes URL parameters and method (POST or GET) and use the base request for the remaining stuff (cookies, session and headers).

Stability: newable
Since
1.19

Definition at line 36 of file DerivativeRequest.php.

Constructor & Destructor Documentation

◆ __construct()

DerivativeRequest::__construct ( WebRequest $base,
$data,
$wasPosted = false )
Stability: stable
to call
Parameters
WebRequest$base
array$dataArray of non-urlencoded key => value pairs, the fake GET/POST values
bool$wasPostedWhether to treat the data as POST

Definition at line 48 of file DerivativeRequest.php.

References $base, and WebRequest\$data.

Member Function Documentation

◆ getAcceptLang()

DerivativeRequest::getAcceptLang ( )

Parse the Accept-Language header sent by the client into an array.

Returns
array [ languageCode => q-value ] sorted by q-value in descending order then appearing time in the header in ascending order. May contain the "language" '*', which applies to languages other than those explicitly listed.

This logic is aligned with RFC 7231 section 5 (previously RFC 2616 section 14), at https://tools.ietf.org/html/rfc7231#section-5.3.5.

Earlier languages in the list are preferred as per the RFC 23282 extension to HTTP/1.1, at https://tools.ietf.org/html/rfc3282.

Reimplemented from WebRequest.

Definition at line 77 of file DerivativeRequest.php.

◆ getAllHeaders()

DerivativeRequest::getAllHeaders ( )

Get an array containing all request headers.

Returns
string[] Mapping header name to its value

Reimplemented from WebRequest.

Definition at line 61 of file DerivativeRequest.php.

◆ getCookie()

DerivativeRequest::getCookie ( $key,
$prefix = null,
$default = null )

Get a cookie from the $_COOKIE jar.

Parameters
string$keyThe name of the cookie
string | null$prefixA prefix to use for the cookie name, if not $wgCookiePrefix
mixed | null$defaultWhat to return if the value isn't found
Returns
mixed Cookie value or $default if the cookie not set

Reimplemented from FauxRequest.

Definition at line 53 of file DerivativeRequest.php.

◆ getElapsedTime()

DerivativeRequest::getElapsedTime ( )

Get the number of seconds to have elapsed since request start, in fractional seconds, with microsecond resolution.

Returns
float
Since
1.25

Reimplemented from WebRequest.

Definition at line 98 of file DerivativeRequest.php.

◆ getHeader()

DerivativeRequest::getHeader ( $name,
$flags = 0 )

Get a request header, or false if it isn't set.

Parameters
string$nameCase-insensitive header name
int$flagsBitwise combination of: WebRequest::GETHEADER_LIST Treat the header as a comma-separated list of values, as described in RFC 2616 ยง 4.2. (since 1.26).
Returns
string|string[]|false False if header is unset; otherwise the header value(s) as either a string (the default) or an array, if WebRequest::GETHEADER_LIST flag was set.

Reimplemented from WebRequest.

Definition at line 57 of file DerivativeRequest.php.

◆ getIP()

DerivativeRequest::getIP ( )

Work out the IP address based on various globals For trusted proxies, use the XFF client IP (first of the chain)

Since
1.19
Returns
string

Reimplemented from WebRequest.

Definition at line 81 of file DerivativeRequest.php.

◆ getProtocol()

DerivativeRequest::getProtocol ( )

Get the current URL protocol (http or https)

Returns
string

Reimplemented from FauxRequest.

Definition at line 89 of file DerivativeRequest.php.

◆ getSession()

DerivativeRequest::getSession ( )

Return the session for this request.

This might unpersist an existing session if it was invalid.

Since
1.27
Note
For performance, keep the session locally if you will be making much use of it instead of calling this method repeatedly.
Returns
Session

Reimplemented from WebRequest.

Definition at line 65 of file DerivativeRequest.php.

◆ getSessionData()

DerivativeRequest::getSessionData ( $key)

Get data from the session.

Note
Prefer $this->getSession() instead if making multiple calls.
Parameters
string$keyName of key in the session
Returns
mixed

Reimplemented from WebRequest.

Definition at line 69 of file DerivativeRequest.php.

◆ getUpload()

DerivativeRequest::getUpload ( $key)

Return a FauxRequestUpload object corresponding to the key.

Parameters
string$key
Returns
FauxRequestUpload

Reimplemented from FauxRequest.

Definition at line 93 of file DerivativeRequest.php.

◆ setIP()

DerivativeRequest::setIP ( $ip)
Parameters
string$ip
Returns
void
Since
1.21

Reimplemented from WebRequest.

Definition at line 85 of file DerivativeRequest.php.

◆ setSessionData()

DerivativeRequest::setSessionData ( $key,
$data )
Note
Prefer $this->getSession() instead if making multiple calls.
Parameters
string$keyName of key in the session
mixed$data

Reimplemented from WebRequest.

Definition at line 73 of file DerivativeRequest.php.

References WebRequest\$data.


The documentation for this class was generated from the following file: