MatthiasMullie\Scrapbook\Psr16\SimpleCache::ttl PHP 메소드

ttl() 보호된 메소드

Accepts all TTL inputs valid in PSR-16 (null|int|DateInterval) and converts them into TTL for KeyValueStore (int).
protected ttl ( null | integer | DateInterva\DateInterval $ttl ) : integer
$ttl null | integer | DateInterva\DateInterval
리턴 integer
    protected function ttl($ttl)
    {
        if ($ttl === null) {
            return 0;
        } elseif (is_int($ttl)) {
            /*
             * PSR-16 only accepts relative timestamps, whereas KeyValueStore
             * accepts both relative & absolute, depending on what the timestamp
             * is. We'll have to convert all ttls here to absolute, to make sure
             * KeyValueStore doesn't get confused.
             * @see https://github.com/dragoonis/psr-simplecache/issues/3
             */
            if ($ttl < 30 * 24 * 60 * 60) {
                return $ttl + time();
            }
            return $ttl;
        } elseif ($ttl instanceof DateInterval) {
            // convert DateInterval to integer by adding it to a 0 DateTime
            $datetime = new DateTime();
            $datetime->setTimestamp(0);
            $datetime->add($ttl);
            return time() + (int) $datetime->format('U');
        }
        $error = 'Invalid time: ' . serialize($ttl) . '. Must be integer or ' . 'instance of DateInterval.';
        if (class_exists('\\TypeError')) {
            throw new \TypeError($error);
        }
        trigger_error($error, E_USER_ERROR);
        return 0;
    }