original_string: private function willMakeFinalResponseUncacheable(Response $response)
      {
          // RFC2616: A response received with a status code of 200, 203, 300, 301 or 410
          // MAY be stored by a cache […] unless a cache-control directive prohibits caching.
          if ($response->headers->hasCacheControlDirective('no-cache')
              || $response->headers->getCacheControlDirective('no-store')
          ) {
              return true;
          }
  
          // Last-Modified and Etag headers cannot be merged, they render the response uncacheable
          // by default (except if the response also has max-age etc.).
          if (\in_array($response->getStatusCode(), [200, 203, 300, 301, 410])
              && null === $response->getLastModified()
              && null === $response->getEtag()
          ) {
              return false;
          }
  
          // RFC2616: A response received with any other status code (e.g. status codes 302 and 307)
          // MUST NOT be returned in a reply to a subsequent request unless there are
          // cache-control directives or another header(s) that explicitly allow it.
          $cacheControl = ['max-age', 's-maxage', 'must-revalidate', 'proxy-revalidate', 'public', 'private'];
          foreach ($cacheControl as $key) {
              if ($response->headers->hasCacheControlDirective($key)) {
                  return false;
              }
          }
  
          if ($response->headers->has('Expires')) {
              return false;
          }
  
          return true;
      }
code: private function willMakeFinalResponseUncacheable(Response $response)
      {
          // RFC2616: A response received with a status code of 200, 203, 300, 301 or 410
          // MAY be stored by a cache […] unless a cache-control directive prohibits caching.
          if ($response->headers->hasCacheControlDirective('no-cache')
              || $response->headers->getCacheControlDirective('no-store')
          ) {
              return true;
          }
  
          // Last-Modified and Etag headers cannot be merged, they render the response uncacheable
          // by default (except if the response also has max-age etc.).
          if (\in_array($response->getStatusCode(), [200, 203, 300, 301, 410])
              && null === $response->getLastModified()
              && null === $response->getEtag()
          ) {
              return false;
          }
  
          // RFC2616: A response received with any other status code (e.g. status codes 302 and 307)
          // MUST NOT be returned in a reply to a subsequent request unless there are
          // cache-control directives or another header(s) that explicitly allow it.
          $cacheControl = ['max-age', 's-maxage', 'must-revalidate', 'proxy-revalidate', 'public', 'private'];
          foreach ($cacheControl as $key) {
              if ($response->headers->hasCacheControlDirective($key)) {
                  return false;
              }
          }
  
          if ($response->headers->has('Expires')) {
              return false;
          }
  
          return true;
      }
code_tokens: private function willMakeFinalResponseUncacheable ( Response $ response ) { // RFC2616: A response received with a status code of 200, 203, 300, 301 or 410 // MAY be stored by a cache […] unless a cache-control directive prohibits caching. if ( $ response -> headers -> hasCacheControlDirective ( 'no-cache' ) || $ response -> headers -> getCacheControlDirective ( 'no-store' ) ) { return true ; } // Last-Modified and Etag headers cannot be merged, they render the response uncacheable // by default (except if the response also has max-age etc.). if ( \ in_array ( $ response -> getStatusCode ( ) , [ 200 , 203 , 300 , 301 , 410 ] ) && null === $ response -> getLastModified ( ) && null === $ response -> getEtag ( ) ) { return false ; } // RFC2616: A response received with any other status code (e.g. status codes 302 and 307) // MUST NOT be returned in a reply to a subsequent request unless there are // cache-control directives or another header(s) that explicitly allow it. $ cacheControl = [ 'max-age' , 's-maxage' , 'must-revalidate' , 'proxy-revalidate' , 'public' , 'private' ] ; foreach ( $ cacheControl as $ key ) { if ( $ response -> headers -> hasCacheControlDirective ( $ key ) ) { return false ; } } if ( $ response -> headers -> has ( 'Expires' ) ) { return false ; } return true ; }
docstring: RFC2616, Section 13.4.
  
  @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.4
  
  @return bool
docstring_tokens: RFC2616 Section 13 . 4 .