Skip to content

Commit f33e7ec

Browse files
Simplify header use advised by @lalop
1 parent d969c13 commit f33e7ec

File tree

3 files changed

+11
-22
lines changed

3 files changed

+11
-22
lines changed

src/Cache.php

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,16 +57,14 @@ public function __invoke(RequestInterface $request, ResponseInterface $response,
5757
}
5858

5959
// Last-Modified header and conditional GET check
60-
$lastModified = $response->getHeader('Last-Modified');
61-
$lastModified = reset($lastModified);
60+
$lastModified = $response->getHeaderLine('Last-Modified');
6261

6362
if ($lastModified) {
6463
if (!is_integer($lastModified)) {
6564
$lastModified = strtotime($lastModified);
6665
}
6766

68-
$ifModifiedSince = $request->getHeader('If-Modified-Since');
69-
$ifModifiedSince = reset($ifModifiedSince);
67+
$ifModifiedSince = $request->getHeaderLine('If-Modified-Since');
7068

7169
if ($ifModifiedSince && $lastModified <= strtotime($ifModifiedSince)) {
7270
return $response->withStatus(304);
@@ -78,8 +76,7 @@ public function __invoke(RequestInterface $request, ResponseInterface $response,
7876
$etag = reset($etag);
7977

8078
if ($etag) {
81-
$ifNoneMatch = $request->getHeader('If-None-Match');
82-
$ifNoneMatch = reset($ifNoneMatch);
79+
$ifNoneMatch = $request->getHeaderLine('If-None-Match');
8380

8481
if ($ifNoneMatch) {
8582
$etagList = preg_split('@\s*,\s*@', $ifNoneMatch);

tests/CacheProviderTest.php

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ public function testAllowCache()
1111
$cacheProvider = new CacheProvider();
1212
$res = $cacheProvider->allowCache(new Response(), 'private', 43200);
1313

14-
$cacheControl = $res->getHeader('Cache-Control');
15-
$cacheControl = reset($cacheControl);
14+
$cacheControl = $res->getHeaderLine('Cache-Control');
1615

1716
$this->assertEquals('private, max-age=43200', $cacheControl);
1817
}
@@ -22,8 +21,7 @@ public function testDenyCache()
2221
$cacheProvider = new CacheProvider();
2322
$res = $cacheProvider->denyCache(new Response());
2423

25-
$cacheControl = $res->getHeader('Cache-Control');
26-
$cacheControl = reset($cacheControl);
24+
$cacheControl = $res->getHeaderLine('Cache-Control');
2725

2826
$this->assertEquals('no-store,no-cache', $cacheControl);
2927
}
@@ -34,8 +32,7 @@ public function testWithExpires()
3432
$cacheProvider = new CacheProvider();
3533
$res = $cacheProvider->withExpires(new Response(), $now);
3634

37-
$expires = $res->getHeader('Expires');
38-
$expires = reset($expires);
35+
$expires = $res->getHeaderLine('Expires');
3936

4037
$this->assertEquals(gmdate('D, d M Y H:i:s T', $now), $expires);
4138
}
@@ -46,8 +43,7 @@ public function testWithETag()
4643
$cacheProvider = new CacheProvider();
4744
$res = $cacheProvider->withEtag(new Response(), $etag);
4845

49-
$etagHeader = $res->getHeader('ETag');
50-
$etagHeader = reset($etagHeader);
46+
$etagHeader = $res->getHeaderLine('ETag');
5147

5248
$this->assertEquals('"' . $etag . '"', $etagHeader);
5349
}
@@ -58,8 +54,7 @@ public function testWithETagWeak()
5854
$cacheProvider = new CacheProvider();
5955
$res = $cacheProvider->withEtag(new Response(), $etag, 'weak');
6056

61-
$etagHeader = $res->getHeader('ETag');
62-
$etagHeader = reset($etagHeader);
57+
$etagHeader = $res->getHeaderLine('ETag');
6358

6459
$this->assertEquals('W/"' . $etag . '"', $etagHeader);
6560
}
@@ -80,8 +75,7 @@ public function testWithLastModified()
8075
$cacheProvider = new CacheProvider();
8176
$res = $cacheProvider->withLastModified(new Response(), $now);
8277

83-
$lastModified = $res->getHeader('Last-Modified');
84-
$lastModified = reset($lastModified);
78+
$lastModified = $res->getHeaderLine('Last-Modified');
8579

8680
$this->assertEquals(gmdate('D, d M Y H:i:s T', $now), $lastModified);
8781
}

tests/CacheTest.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@ public function testCacheControlHeader()
3232
};
3333
$res = $cache($req, $res, $next);
3434

35-
$cacheControl = $res->getHeader('Cache-Control');
36-
$cacheControl = reset($cacheControl);
35+
$cacheControl = $res->getHeaderLine('Cache-Control');
3736

3837
$this->assertEquals('public, max-age=86400', $cacheControl);
3938
}
@@ -48,8 +47,7 @@ public function testCacheControlHeaderDoesNotOverrideExistingHeader()
4847
};
4948
$res = $cache($req, $res, $next);
5049

51-
$cacheControl = $res->getHeader('Cache-Control');
52-
$cacheControl = reset($cacheControl);
50+
$cacheControl = $res->getHeaderLine('Cache-Control');
5351

5452
$this->assertEquals('no-cache,no-store', $cacheControl);
5553
}

0 commit comments

Comments
 (0)