當前位置: 首頁>>代碼示例>>PHP>>正文


PHP CacheItemInterface::getExpiration方法代碼示例

本文整理匯總了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;
 }
開發者ID:Nyholm,項目名稱:zend-cache-psr6,代碼行數:38,代碼來源:CacheItemPoolAdapter.php

示例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);
 }
開發者ID:matthiasmullie,項目名稱:scrapbook,代碼行數:22,代碼來源:Pool.php

示例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);
 }
開發者ID:shieldo,項目名稱:Cache,代碼行數:9,代碼來源:DoctrineCacheAdapter.php

示例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());
 }
開發者ID:braising,項目名稱:stelo-for-wc,代碼行數:13,代碼來源:CacheItemPool.php

示例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);
 }
開發者ID:tlumx,項目名稱:framework,代碼行數:16,代碼來源:AbstractCacheItemPool.php

示例6: save

 public function save(PsrCacheInterface $item)
 {
     $this->getDriver()->set($item->getKey(), $item->get(), $item->getExpiration());
     return $this;
 }
開發者ID:yrizos,項目名稱:stockpile,代碼行數:5,代碼來源:Pool.php

示例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);
 }
開發者ID:Nyholm,項目名稱:scrapbook,代碼行數:16,代碼來源:Pool.php

示例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;
 }
開發者ID:clickalicious,項目名稱:doozr,代碼行數:14,代碼來源:Service.php


注:本文中的Psr\Cache\CacheItemInterface::getExpiration方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。