本文整理汇总了PHP中Psr\Cache\CacheItemInterface::getExpiration方法的典型用法代码示例。如果您正苦于以下问题:PHP CacheItemInterface::getExpiration方法的具体用法?PHP CacheItemInterface::getExpiration怎么用?PHP CacheItemInterface::getExpiration使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Psr\Cache\CacheItemInterface
的用法示例。
在下文中一共展示了CacheItemInterface::getExpiration方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: save
/**
* Persists a cache item immediately.
*
* @param CacheItemInterface $item
* The cache item to save.
*
* @return bool
* True if the item was successfully persisted. False if there was an error.
*/
public function save(CacheItemInterface $item)
{
if (!$item instanceof CacheItem) {
throw new InvalidArgumentException('$item must be an instance of ' . CacheItem::class);
}
$this->validateKey($item->getKey());
try {
$options = false;
$expiration = $item->getExpiration();
// @todo I can't see any way to set the TTL on an individual item except by temporarily overwriting the
// option on the storage adapter. Not sure if all storage adapters will support this...
if ($expiration instanceof DateTime) {
$options = $this->storage->getOptions();
$new = clone $options;
$interval = $expiration->diff(new DateTime(), true);
$new->setTtl($interval->format('%s'));
$this->storage->setOptions($new);
}
$saved = $this->storage->setItem($item->getKey(), $item->get());
if ($options) {
$this->storage->setOptions($options);
}
} catch (Exception\InvalidArgumentException $e) {
throw new InvalidArgumentException($e->getMessage(), $e->getCode(), $e);
} catch (Exception\ExceptionInterface $e) {
throw new CacheException($e->getMessage(), $e->getCode(), $e);
}
return $saved;
}
示例2: save
/**
* {@inheritdoc}
*/
public function save(CacheItemInterface $item)
{
if (!$item instanceof Item) {
throw new InvalidArgumentException('MatthiasMullie\\Scrapbook\\Psr6\\Pool can only save
MatthiasMullie\\Scrapbook\\Psr6\\Item objects');
}
if (!$item->hasChanged()) {
/*
* If the item didn't change, we don't have to re-save it. We do,
* however, need to check if the item actually holds a value: if it
* does, it should be considered "saved" (even though nothing has
* changed, the value for this key is in cache) and if it doesn't,
* well then nothing is in cache.
*/
return $item->get() !== null;
}
$expire = $item->getExpiration();
return $this->store->set($item->getKey(), $item->get(), $expire);
}
示例3: doSave
private function doSave(CacheItemInterface $item)
{
$now = new DateTime();
$ttl = $item->getExpiration()->format('U') - $now->format('U');
if ($ttl < 0) {
return false;
}
return $this->provider->save($item->getKey(), $item, $ttl);
}
示例4: save
/**
* Persists a cache item immediately.
*
* @param CacheItemInterface $item
* The cache item to save.
*
* @return static
* The invoked object.
*/
public function save(CacheItemInterface $item)
{
return $this->getDriver()->save($item->getKey(), $item->get(), $item->getExpiration());
}
示例5: save
/**
* {@inheritdoc}
*/
public function save(CacheItemInterface $item)
{
$storageKey = $this->createKey($item->getKey());
$ttl = $this->ttl;
if ($item instanceof CacheItem) {
$expiration = $item->getExpiration()->getTimestamp();
$time = time();
if ($expiration > $time) {
$ttl = $expiration - $time;
}
}
return $this->setDataToStorage($storageKey, $item->get(), $ttl);
}
示例6: save
public function save(PsrCacheInterface $item)
{
$this->getDriver()->set($item->getKey(), $item->get(), $item->getExpiration());
return $this;
}
示例7: save
/**
* {@inheritdoc}
*/
public function save(CacheItemInterface $item)
{
if (!$item instanceof Item) {
throw new InvalidArgumentException('MatthiasMullie\\Scrapbook\\Psr6\\Pool can only save
MatthiasMullie\\Scrapbook\\Psr6\\Item objects');
}
$expire = $item->getExpiration();
if ($expire !== 0 && $expire < time()) {
// already expired: don't even save it
return true;
}
return $this->store->set($item->getKey(), $item->get(), $expire);
}
示例8: save
/**
* Persists a cache item immediately.
*
* @param CacheItemInterface $item The cache item to save.
*
* @author Benjamin Carl <opensource@clickalicious.de>
*
* @return $this The invoked object.
*/
public function save(CacheItemInterface $item)
{
$this->create($item->getKey(), $item->get(), $item->getExpiration());
return $this;
}