本文整理汇总了PHP中Illuminate\Support\Facades\Request::getETags方法的典型用法代码示例。如果您正苦于以下问题:PHP Request::getETags方法的具体用法?PHP Request::getETags怎么用?PHP Request::getETags使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Illuminate\Support\Facades\Request
的用法示例。
在下文中一共展示了Request::getETags方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: json
/**
* Return a new JSON response from the application.
* Inject some headers
*
* @param string|array $data
* @param int $status
* @param array $headers
* @return \Illuminate\Http\JsonResponse
*/
public static function json($data = array(), $status = 200, array $headers = array(), $options = 0)
{
$etagMatch = false;
$headersToExpose = array();
if (array_key_exists('ETag', $headers)) {
$headersToExpose[] = 'ETag';
// Empty the data if If-None-Match header match with ETag value
$requestEtags = IlluminateRequest::getETags();
if (!empty($requestEtags)) {
foreach ($requestEtags as $etag) {
if ($headers['ETag'] == $etag) {
$etagMatch = true;
$data = array();
break;
}
}
}
unset($requestEtags);
}
if (array_key_exists('Link', $headers)) {
$headersToExpose[] = 'Link';
}
if (array_key_exists('X-Rate-Limit-Limit', $headers)) {
$headersToExpose[] = 'X-Rate-Limit-Limit';
}
if (array_key_exists('X-Rate-Limit-Remaining', $headers)) {
$headersToExpose[] = 'X-Rate-Limit-Remaining';
}
if (array_key_exists('X-Rate-Limit-Reset', $headers)) {
$headersToExpose[] = 'X-Rate-Limit-Reset';
}
$headers['Access-Control-Expose-Headers'] = implode(', ', $headersToExpose);
if ($etagMatch) {
$response = parent::make('', 304, $headers);
} else {
$response = parent::json($data, $status, $headers);
}
$response->setCharset('utf-8');
if (array_key_exists('ETag', $headers)) {
$response->setCache(array('etag' => $headers['ETag']));
}
return $response;
}