本文整理汇总了PHP中Cake\Network\Response::mapType方法的典型用法代码示例。如果您正苦于以下问题:PHP Response::mapType方法的具体用法?PHP Response::mapType怎么用?PHP Response::mapType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Cake\Network\Response
的用法示例。
在下文中一共展示了Response::mapType方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testMapType
/**
* Tests the mapType method
*
* @return void
*/
public function testMapType()
{
$response = new Response();
$this->assertEquals('wav', $response->mapType('audio/x-wav'));
$this->assertEquals('pdf', $response->mapType('application/pdf'));
$this->assertEquals('xml', $response->mapType('text/xml'));
$this->assertEquals('html', $response->mapType('*/*'));
$this->assertEquals('csv', $response->mapType('application/vnd.ms-excel'));
$expected = ['json', 'xhtml', 'css'];
$result = $response->mapType(['application/json', 'application/xhtml+xml', 'text/css']);
$this->assertEquals($expected, $result);
}
示例2: _setExtension
/**
* Set the extension based on the accept headers.
* Compares the accepted types and configured extensions.
* If there is one common type, that is assigned as the ext/content type for the response.
* The type with the highest weight will be set. If the highest weight has more
* than one type matching the extensions, the order in which extensions are specified
* determines which type will be set.
*
* If html is one of the preferred types, no content type will be set, this
* is to avoid issues with browsers that prefer HTML and several other content types.
*
* @param \Cake\Network\Request $request The request instance.
* @param \Cake\Network\Response $response The response instance.
* @return void
*/
protected function _setExtension($request, $response)
{
$accept = $request->parseAccept();
if (empty($accept)) {
return;
}
$accepts = $response->mapType($accept);
$preferedTypes = current($accepts);
if (array_intersect($preferedTypes, ['html', 'xhtml'])) {
return;
}
$extensions = Router::extensions();
foreach ($accepts as $types) {
$ext = array_intersect($extensions, $types);
if ($ext) {
$this->ext = current($ext);
break;
}
}
}
示例3: mapType
/**
* Maps a content-type back to an alias
*
* e.g `mapType('application/pdf'); // returns 'pdf'`
*
* @param string|array $ctype Either a string content type to map, or an array of types.
* @return mixed Aliases for the types provided.
*/
public function mapType($ctype)
{
return parent::mapType($ctype);
}
示例4: _setExtension
/**
* Set the extension based on the accept headers.
* Compares the accepted types and configured extensions.
* If there is one common type, that is assigned as the ext/content type for the response.
* The type with the highest weight will be set. If the highest weight has more
* than one type matching the extensions, the order in which extensions are specified
* determines which type will be set.
*
* If html is one of the preferred types, no content type will be set, this
* is to avoid issues with browsers that prefer HTML and several other content types.
*
* @param \Cake\Network\Request $request The request instance.
* @param \Cake\Network\Response $response The response instance.
* @return void
*/
protected function _setExtension($request, $response)
{
$accept = $request->parseAccept();
if (empty($accept)) {
return;
}
$accepts = $response->mapType($accept);
$preferredTypes = current($accepts);
if (array_intersect($preferredTypes, ['html', 'xhtml'])) {
return;
}
$extensions = array_unique(array_merge(Router::extensions(), array_keys($this->config('viewClassMap'))));
foreach ($accepts as $types) {
$ext = array_intersect($extensions, $types);
if (!empty($ext)) {
$this->ext = current($ext);
break;
}
}
}
示例5: responseType
/**
* Returns the current response type (Content-type header), or null if not alias exists
*
* @return mixed A string content type alias, or raw content type if no alias map exists,
* otherwise null
*/
public function responseType()
{
return $this->response->mapType($this->response->type());
}