Skip to content
This repository has been archived by the owner on Feb 6, 2023. It is now read-only.

Make the cache ttl compatible with Symfony #107

Open
nanofelis opened this issue Jun 8, 2022 · 1 comment
Open

Make the cache ttl compatible with Symfony #107

nanofelis opened this issue Jun 8, 2022 · 1 comment

Comments

@nanofelis
Copy link

The cache used in the FirebaseJwtAdapter is not compatible with symfony/cache because it uses a Carbon date for the cache item TTL but Symfony only accepts an integer or a DateInterval.

https://github.com/symfony/cache/blob/364fc90734230d936ac2db8e897cc03ec8497bbb/CacheItem.php#L90

    public function expiresAfter($time): self
    {
        if (null === $time) {
            $this->expiry = null;
        } elseif ($time instanceof \DateInterval) {
            $this->expiry = microtime(true) + \DateTime::createFromFormat('U', 0)->add($time)->format('U.u');
        } elseif (\is_int($time)) {
            $this->expiry = $time + microtime(true);
        } else {
            throw new InvalidArgumentException(sprintf('Expiration date must be an integer, a DateInterval or null, "%s" given.', get_debug_type($time)));
        }

        return $this;
    }

So we get the following exception when setting the TTL:

{
    class: "Symfony\\Component\\Cache\\Exception\\InvalidArgumentException"
    detail: "Expiration date must be an integer, a DateInterval or null, \"Carbon\\Carbon\" given."
}

Pull Request : #106

@selvaramj
Copy link

selvaramj commented Oct 26, 2022

Yes, the same issue I'm also facing. Please, provide a solution for this issue.
image

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants