All checks were successful
Build, Push and Deploy / build-and-push (push) Successful in 3m3s
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 16s
Build, Push and Deploy / deploy-staging (push) Successful in 32s
Build, Push and Deploy / deploy-production (push) Has been skipped
Build, Push and Deploy / cleanup (push) Successful in 1s
32 lines
624 B
PHP
32 lines
624 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Kreait\Firebase\JWT\Contract;
|
|
|
|
use DateTimeImmutable;
|
|
use DateTimeInterface;
|
|
|
|
trait ExpirableTrait
|
|
{
|
|
private DateTimeImmutable $expirationTime;
|
|
|
|
public function withExpirationTime(DateTimeImmutable $expirationTime): self
|
|
{
|
|
$expirable = clone $this;
|
|
$expirable->expirationTime = $expirationTime;
|
|
|
|
return $expirable;
|
|
}
|
|
|
|
public function isExpiredAt(DateTimeInterface $now): bool
|
|
{
|
|
return $this->expirationTime < $now;
|
|
}
|
|
|
|
public function expiresAt(): DateTimeImmutable
|
|
{
|
|
return $this->expirationTime;
|
|
}
|
|
}
|