mirror of
https://github.com/WordPress/WordPress.git
synced 2024-09-06 12:48:12 +02:00
Prior to about 2013, many class methods lacked even access modifiers which made the `@access` notations that much more useful. Now that we've gotten to a point where the codebase is more mature from a maintenance perspective and we can finally remove these notations. Notable exceptions to this change include standalone functions notated as private as well as some classes still considered to represent "private" APIs. See #41452. Built from https://develop.svn.wordpress.org/trunk@41162 git-svn-id: http://core.svn.wordpress.org/trunk@41002 1a063a9b-81f0-0310-95a4-ce76da25c4cd
154 lines
2.8 KiB
PHP
154 lines
2.8 KiB
PHP
<?php
|
|
/**
|
|
* HTTP API: WP_HTTP_Response class
|
|
*
|
|
* @package WordPress
|
|
* @subpackage HTTP
|
|
* @since 4.4.0
|
|
*/
|
|
|
|
/**
|
|
* Core class used to prepare HTTP responses.
|
|
*
|
|
* @since 4.4.0
|
|
*/
|
|
class WP_HTTP_Response {
|
|
|
|
/**
|
|
* Response data.
|
|
*
|
|
* @since 4.4.0
|
|
* @var mixed
|
|
*/
|
|
public $data;
|
|
|
|
/**
|
|
* Response headers.
|
|
*
|
|
* @since 4.4.0
|
|
* @var array
|
|
*/
|
|
public $headers;
|
|
|
|
/**
|
|
* Response status.
|
|
*
|
|
* @since 4.4.0
|
|
* @var int
|
|
*/
|
|
public $status;
|
|
|
|
/**
|
|
* Constructor.
|
|
*
|
|
* @since 4.4.0
|
|
*
|
|
* @param mixed $data Response data. Default null.
|
|
* @param int $status Optional. HTTP status code. Default 200.
|
|
* @param array $headers Optional. HTTP header map. Default empty array.
|
|
*/
|
|
public function __construct( $data = null, $status = 200, $headers = array() ) {
|
|
$this->data = $data;
|
|
$this->set_status( $status );
|
|
$this->set_headers( $headers );
|
|
}
|
|
|
|
/**
|
|
* Retrieves headers associated with the response.
|
|
*
|
|
* @since 4.4.0
|
|
*
|
|
* @return array Map of header name to header value.
|
|
*/
|
|
public function get_headers() {
|
|
return $this->headers;
|
|
}
|
|
|
|
/**
|
|
* Sets all header values.
|
|
*
|
|
* @since 4.4.0
|
|
*
|
|
* @param array $headers Map of header name to header value.
|
|
*/
|
|
public function set_headers( $headers ) {
|
|
$this->headers = $headers;
|
|
}
|
|
|
|
/**
|
|
* Sets a single HTTP header.
|
|
*
|
|
* @since 4.4.0
|
|
*
|
|
* @param string $key Header name.
|
|
* @param string $value Header value.
|
|
* @param bool $replace Optional. Whether to replace an existing header of the same name.
|
|
* Default true.
|
|
*/
|
|
public function header( $key, $value, $replace = true ) {
|
|
if ( $replace || ! isset( $this->headers[ $key ] ) ) {
|
|
$this->headers[ $key ] = $value;
|
|
} else {
|
|
$this->headers[ $key ] .= ', ' . $value;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Retrieves the HTTP return code for the response.
|
|
*
|
|
* @since 4.4.0
|
|
*
|
|
* @return int The 3-digit HTTP status code.
|
|
*/
|
|
public function get_status() {
|
|
return $this->status;
|
|
}
|
|
|
|
/**
|
|
* Sets the 3-digit HTTP status code.
|
|
*
|
|
* @since 4.4.0
|
|
*
|
|
* @param int $code HTTP status.
|
|
*/
|
|
public function set_status( $code ) {
|
|
$this->status = absint( $code );
|
|
}
|
|
|
|
/**
|
|
* Retrieves the response data.
|
|
*
|
|
* @since 4.4.0
|
|
*
|
|
* @return mixed Response data.
|
|
*/
|
|
public function get_data() {
|
|
return $this->data;
|
|
}
|
|
|
|
/**
|
|
* Sets the response data.
|
|
*
|
|
* @since 4.4.0
|
|
*
|
|
* @param mixed $data Response data.
|
|
*/
|
|
public function set_data( $data ) {
|
|
$this->data = $data;
|
|
}
|
|
|
|
/**
|
|
* Retrieves the response data for JSON serialization.
|
|
*
|
|
* It is expected that in most implementations, this will return the same as get_data(),
|
|
* however this may be different if you want to do custom JSON data handling.
|
|
*
|
|
* @since 4.4.0
|
|
*
|
|
* @return mixed Any JSON-serializable value.
|
|
*/
|
|
public function jsonSerialize() {
|
|
return $this->get_data();
|
|
}
|
|
}
|