/** * @see \Psr\Cache\CacheItemPoolInterface::save() */ public function save(CacheItemInterface $item) { // validate key $this->validateKey($item->getKey()); // check whether we have a BasicCacheItem (required to get expiration time) if (!$item instanceof BasicCacheItem) { throw new InvalidArgumentException('Can only save ' . BasicCacheItem::class . ' as access to expiration time is required'); } // add item to storage and return whether operation was successful return $this->getStorage()->set(new BasicStorageItem($item->getKey(), $item->get(), null, $item->getExpirationTime())); }