当前位置: 首页>>代码示例>>PHP>>正文


PHP Response::calculateAge方法代码示例

本文整理汇总了PHP中Guzzle\Http\Message\Response::calculateAge方法的典型用法代码示例。如果您正苦于以下问题:PHP Response::calculateAge方法的具体用法?PHP Response::calculateAge怎么用?PHP Response::calculateAge使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Guzzle\Http\Message\Response的用法示例。


在下文中一共展示了Response::calculateAge方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: canResponseSatisfyRequest

 /**
  * Check if a cache response satisfies a request's caching constraints
  *
  * @param RequestInterface $request  Request to validate
  * @param Response         $response Response to validate
  *
  * @return bool
  */
 public function canResponseSatisfyRequest(RequestInterface $request, Response $response)
 {
     $responseAge = $response->calculateAge();
     $reqc = $request->getHeader('Cache-Control');
     $resc = $response->getHeader('Cache-Control');
     // Check the request's max-age header against the age of the response
     if ($reqc && $reqc->hasDirective('max-age') && $responseAge > $reqc->getDirective('max-age')) {
         return false;
     }
     // Check the response's max-age header
     if ($response->isFresh() === false) {
         $maxStale = $reqc ? $reqc->getDirective('max-stale') : null;
         if (null !== $maxStale) {
             if ($maxStale !== true && $response->getFreshness() < -1 * $maxStale) {
                 return false;
             }
         } elseif ($resc && $resc->hasDirective('max-age') && $responseAge > $resc->getDirective('max-age')) {
             return false;
         }
     }
     if ($this->revalidation->shouldRevalidate($request, $response)) {
         try {
             return $this->revalidation->revalidate($request, $response);
         } catch (CurlException $e) {
             $request->getParams()->set('cache.hit', 'error');
             return $this->canResponseSatisfyFailedRequest($request, $response);
         }
     }
     return true;
 }
开发者ID:Trideon,项目名称:gigolo,代码行数:38,代码来源:CachePlugin.php

示例2: canResponseSatisfyRequest

 /**
  * Check if a cache response satisfies a request's caching constraints
  *
  * @param RequestInterface $request  Request to validate
  * @param Response         $response Response to validate
  *
  * @return bool
  */
 public function canResponseSatisfyRequest(RequestInterface $request, Response $response)
 {
     $responseAge = $response->calculateAge();
     $reqc = $request->getHeader('Cache-Control');
     $resc = $response->getHeader('Cache-Control');
     // Check the request's max-age header against the age of the response
     if ($reqc && $reqc->hasDirective('max-age') && $responseAge > $reqc->getDirective('max-age')) {
         return false;
     }
     // Check the response's max-age header
     if ($response->isFresh() === false) {
         $maxStale = $reqc ? $reqc->getDirective('max-stale') : null;
         if (null !== $maxStale) {
             if ($maxStale !== true && $response->getFreshness() < -1 * $maxStale) {
                 return false;
             }
         } elseif ($resc && $resc->hasDirective('max-age') && $responseAge > $resc->getDirective('max-age')) {
             return false;
         }
     }
     // Only revalidate GET requests
     if ($request->getMethod() == RequestInterface::GET) {
         // Check if the response must be validated against the origin server
         if ($request->getHeader('Pragma') == 'no-cache' || $reqc && ($reqc->hasDirective('no-cache') || $reqc->hasDirective('must-revalidate')) || $resc && ($resc->hasDirective('no-cache') || $resc->hasDirective('must-revalidate'))) {
             // no-cache: When no parameters are present, always revalidate
             // When parameters are present in no-cache and the request includes those same parameters, then the
             // response must re-validate. I'll need an example of what fields look like in order to implement a
             // smarter version of no-cache
             // Requests can decline to revalidate against the origin server by setting the cache.revalidate param:
             // - never - To never revalidate and always contact the origin server
             // - skip  - To skip revalidation and just use what is in cache
             switch ($request->getParams()->get('cache.revalidate')) {
                 case 'never':
                     return false;
                 case 'skip':
                     return true;
                 default:
                     return $this->revalidation->revalidate($request, $response);
             }
         }
     }
     return true;
 }
开发者ID:creazy412,项目名称:vmware-win10-c65-drupal7,代码行数:51,代码来源:CachePlugin.php


注:本文中的Guzzle\Http\Message\Response::calculateAge方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。