http://www.phpfastcache.com * @author Georges.L (Geolim4) * */ namespace phpFastCache\Drivers\Apcu; use phpFastCache\Core\Item\ExtendedCacheItemInterface; use phpFastCache\Core\Item\ItemBaseTrait; use phpFastCache\Core\Pool\ExtendedCacheItemPoolInterface; use phpFastCache\Drivers\Apcu\Driver as ApcuDriver; use phpFastCache\Exceptions\phpFastCacheInvalidArgumentException; /** * Class Item * @package phpFastCache\Drivers\Apcu */ class Item implements ExtendedCacheItemInterface { use ItemBaseTrait; /** * Item constructor. * @param \phpFastCache\Drivers\Apcu\Driver $driver * @param $key * @throws phpFastCacheInvalidArgumentException */ public function __construct(ApcuDriver $driver, $key) { if (is_string($key)) { $this->key = $key; $this->driver = $driver; $this->driver->setItem($this); $this->expirationDate = new \DateTime(); } else { throw new phpFastCacheInvalidArgumentException(sprintf('$key must be a string, got type "%s" instead.', gettype($key))); } } /** * @param ExtendedCacheItemPoolInterface $driver * @throws phpFastCacheInvalidArgumentException * @return static */ public function setDriver(ExtendedCacheItemPoolInterface $driver) { if ($driver instanceof ApcuDriver) { $this->driver = $driver; return $this; } else { throw new phpFastCacheInvalidArgumentException('Invalid driver instance'); } } }