lithium\net\http\Response::__construct()
Overrides
lithium\net\Message::__construct()
Constructor. Adds config values to the public properties when a new object is created.
Parameters
-
array
$config
The available configuration options are the following. Further options are inherited from the parent classes.
'message'
string: Defaults tonull
.'status'
mixed: Defaults tonull
.'type'
string: Defaults tonull
.'cookies'
array: Defaults to[]
.
Returns
voidSource
public function __construct(array $config = []) {
$defaults = [
'message' => null,
'status' => null,
'type' => null,
'cookies' => []
];
parent::__construct($config + $defaults);
if ($this->_config['message']) {
$this->body = $this->_parseMessage($this->_config['message']);
}
if ($this->headers('Transfer-Encoding')) {
$this->body = $this->_httpChunkedDecode($this->body);
}
if ($status = $this->_config['status']) {
$this->status($status);
}
if ($cookies = $this->headers('Set-Cookie')) {
$this->_parseCookies($cookies);
}
if ($cookies = $this->_config['cookies']) {
$this->cookies($cookies);
}
if ($type = $this->_config['type']) {
$this->type($type);
}
if (!$header = $this->headers('Content-Type')) {
return;
}
$header = is_array($header) ? end($header) : $header;
preg_match('/([-\w\/\.+]+)(;\s*?charset=(.+))?/i', $header, $match);
if (isset($match[1])) {
$this->type(trim($match[1]));
}
if (isset($match[3])) {
$this->encoding = strtoupper(trim($match[3]));
}
}