Passed
Push — redis ( 437779 )
by Akihito
11:19
created

AkamaiCacheControlHeaderSetter   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 15
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 8
c 1
b 0
f 0
dl 0
loc 15
rs 10
wmc 3
1
<?php
2
3
declare(strict_types=1);
4
5
namespace BEAR\QueryRepository\Cdn;
6
7
use BEAR\QueryRepository\CdnCacheControlHeaderSetterInterface;
8
use BEAR\QueryRepository\Header;
9
use BEAR\Resource\ResourceObject;
10
11
use function sprintf;
12
13
final class AkamaiCacheControlHeaderSetter implements CdnCacheControlHeaderSetterInterface
14
{
15
    public const CDN_CACHE_CONTROL_HEADER = 'Akamai-Cache-Control';
16
    private const PURGE_KEYS = 'Edge-Cache-Tag';
17
18
    public function __invoke(ResourceObject $ro, int|null $sMaxAge): void
19
    {
20
        $sMaxAge ??= 31_536_000;
0 ignored issues
show
Bug introduced by
A parse error occurred: Syntax error, unexpected T_STRING on line 20 at column 23
Loading history...
21
        if (isset($ro->headers[Header::SURROGATE_KEY])) {
22
            $ro->headers[self::PURGE_KEYS] = $ro->headers[Header::SURROGATE_KEY];
23
            unset($ro->headers[Header::SURROGATE_KEY]);
24
        }
25
26
        if (! isset($ro->headers[self::CDN_CACHE_CONTROL_HEADER])) {
27
            $ro->headers[self::CDN_CACHE_CONTROL_HEADER] = sprintf('max-age=%s', (string) $sMaxAge);
28
        }
29
    }
30
}
31