Passed
Branch support-laravel-6 (ddd0b3)
by Pieter
06:42
created

LifetimeHelper   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 21
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 9
c 1
b 0
f 0
dl 0
loc 21
rs 10
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A computeLifetime() 0 7 2
A isLegacy() 0 10 2
1
<?php
2
namespace W2w\Laravel\Apie\Services\Psr6;
3
4
use DateTimeImmutable;
5
use DateTimeInterface;
6
use Illuminate\Contracts\Cache\Store;
7
use ReflectionClass;
8
9
class LifetimeHelper
10
{
11
    public static function computeLifetime(DateTimeInterface $expiresAt)
12
    {
13
        $now = new DateTimeImmutable('now', $expiresAt->getTimezone());
14
15
        $seconds = $expiresAt->getTimestamp() - $now->getTimestamp();
16
17
        return self::isLegacy() ? (int) floor($seconds / 60.0) : $seconds;
18
    }
19
20
    private static function isLegacy()
21
    {
22
        static $legacy;
23
24
        if ($legacy === null) {
25
            $params = (new ReflectionClass(Store::class))->getMethod('put')->getParameters();
26
            $legacy = $params[2]->getName() === 'minutes';
27
        }
28
29
        return $legacy;
30
    }
31
}
32