http://www.phpfastcache.com * @author Georges.L (Geolim4) * */ namespace phpFastCache\Drivers\Ssdb; use phpFastCache\Core\Item\ExtendedCacheItemInterface; use phpFastCache\Core\Item\ItemBaseTrait; use phpFastCache\Core\Pool\ExtendedCacheItemPoolInterface; use phpFastCache\Drivers\Ssdb\Driver as SsdbDriver; use phpFastCache\Exceptions\phpFastCacheInvalidArgumentException; /** * Class Item * @package phpFastCache\Drivers\Ssdb */ class Item implements ExtendedCacheItemInterface { use ItemBaseTrait; /** * Item constructor. * @param \phpFastCache\Drivers\Ssdb\Driver $driver * @param $key * @throws phpFastCacheInvalidArgumentException */ public function __construct(SsdbDriver $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 SsdbDriver) { $this->driver = $driver; return $this; } else { throw new phpFastCacheInvalidArgumentException('Invalid driver instance'); } } }