lithium\net\http\Message::type()
Sets/gets the content type.
Parameters
-
string
$type
A full content type i.e.
'application/json'
or simple name'json'
Returns
stringA simple content type name, i.e. 'html'
, 'xml'
, 'json'
, etc., depending
on the content type of the request.
Source
public function type($type = null) {
if ($type === false) {
unset($this->headers['Content-Type']);
$this->_type = false;
return;
}
$media = $this->_classes['media'];
if (!$type && $this->_type) {
return $this->_type;
}
$headers = $this->headers + ['Content-Type' => null];
$type = $type ?: $headers['Content-Type'];
if (!$type) {
return;
}
$header = $type;
if (!$data = $media::type($type)) {
$this->headers('Content-Type', $type);
return ($this->_type = $type);
}
if (is_string($data)) {
$type = $data;
} elseif (!empty($data['content'])) {
$header = is_string($data['content']) ? $data['content'] : reset($data['content']);
}
$this->headers('Content-Type', $header);
return ($this->_type = $type);
}