/** * {@inheritdoc} */ protected function storeItemInCache(CacheItemInterface $item, $ttl) { $key = $this->getHierarchyKey($item->getKey()); $data = serialize([true, $item->get(), $item->getTags()]); if ($ttl === null || $ttl === 0) { return $this->cache->set($key, $data); } return $this->cache->setex($key, $ttl, $data); }
/** * {@inheritdoc} */ public function save(ItemInterface $item) { $ttl = $item->getTtlInSecond(); $this->_tags = $item->getTags(); $item->setHit(true); $success = $this->cache_adapter->save($item->get(), $item->getKey(), $this->_tags, is_null($ttl) ? 0 : $ttl); $item->setHit($success); return $this; }
/** * {@inheritdoc} * @throws \InvalidArgumentException * @throws \League\Flysystem\FileNotFoundException * @throws \League\Flysystem\FileExistsException */ protected function storeItemInCache(CacheItemInterface $item, $ttl) { $file = $this->getFilePath($item->getKey()); if ($this->filesystem->has($file)) { $this->filesystem->delete($file); } $tags = []; if ($item instanceof TaggableItemInterface) { $tags = $item->getTags(); } return $this->filesystem->write($file, serialize([$ttl === null ? null : time() + $ttl, $item->get(), $tags])); }
/** * @param \Psr\Cache\CacheItemInterface $item * @return mixed * @throws \InvalidArgumentException */ protected function driverWrite(CacheItemInterface $item) { /** * Check for Cross-Driver type confusion */ if ($item instanceof Item) { try { $result = (array) $this->getCollection()->update(['_id' => $item->getKey()], ['$set' => [self::DRIVER_EDATE_WRAPPER_INDEX => $item->getTtl() > 0 ? new MongoDate(time() + $item->getTtl()) : new MongoDate(time()), self::DRIVER_DATA_WRAPPER_INDEX => new MongoBinData($this->encode($item->get()), MongoBinData::BYTE_ARRAY), self::DRIVER_TAGS_WRAPPER_INDEX => new MongoBinData($this->encode($item->getTags()), MongoBinData::BYTE_ARRAY)]], ['upsert' => true, 'multiple' => false]); } catch (MongoCursorException $e) { return false; } return isset($result['ok']) ? $result['ok'] == 1 : true; } else { throw new \InvalidArgumentException('Cross-Driver type confusion detected'); } }
/** * {@inheritdoc} */ protected function storeItemInCache(CacheItemInterface $item, $ttl) { $tags = []; if ($item instanceof TaggableItemInterface) { $tags = $item->getTags(); } $data = serialize([$ttl === null ? null : time() + $ttl, $item->get(), $tags]); $file = $this->getFilePath($item->getKey()); if ($this->filesystem->has($file)) { // Update file if it exists return $this->filesystem->update($file, $data); } try { return $this->filesystem->write($file, $data); } catch (FileExistsException $e) { // To handle issues when/if race conditions occurs, we try to update here. return $this->filesystem->update($file, $data); } }
/** * {@inheritdoc} */ protected function storeItemInCache(CacheItemInterface $item, $ttl) { if ($ttl === null) { $ttl = 0; } $tags = []; if ($item instanceof TaggableItemInterface) { $tags = $item->getTags(); } $data = serialize([true, $item->get(), $tags]); return $this->cache->save($item->getKey(), $data, $ttl); }