????
Current Path : /home/thenclexdoctor.com/public_html/vendor/beste/in-memory-cache/src/ |
Current File : /home/thenclexdoctor.com/public_html/vendor/beste/in-memory-cache/src/CacheItem.php |
<?php namespace Beste\Cache; use Psr\Cache\CacheItemInterface; use Psr\Clock\ClockInterface; /** * @internal */ final class CacheItem implements CacheItemInterface { private mixed $value; private ?\DateTimeInterface $expiresAt; private bool $isHit; public function __construct(private readonly CacheKey $key, private readonly ClockInterface $clock) { $this->value = null; $this->expiresAt = null; $this->isHit = false; } public function getKey(): string { return $this->key->toString(); } public function get(): mixed { if ($this->isHit()) { return $this->value; } return null; } public function isHit(): bool { if ($this->isHit === false) { return false; } if ($this->expiresAt === null) { return true; } return $this->clock->now()->getTimestamp() < $this->expiresAt->getTimestamp(); } public function set(mixed $value): static { $this->isHit = true; $this->value = $value; return $this; } public function expiresAt(?\DateTimeInterface $expiration): static { $this->expiresAt = $expiration; return $this; } public function expiresAfter(\DateInterval|int|null $time): static { if ($time === null) { $this->expiresAt = null; return $this; } if (is_int($time)) { $time = new \DateInterval("PT{$time}S"); } $this->expiresAt = $this->clock->now()->add($time); return $this; } }
Sorry, this page is not available...