public function getItem($key)
{
$keyString = trim($key, '/');
$key = explode('/', $keyString);
$namespace = empty($this->namespace) ? 'stash_default' : $this->namespace;
array_unshift($key, $namespace);
foreach ($key as $node) {
if (!isset($node[1]) && strlen($node) < 1) {
throw new InvalidArgumentException('Invalid or Empty Node passed to getItem constructor.');
}
}
/** @var ItemInterface $item */
$item = new $this->itemClass();
$item->setPool($this);
$item->setKey($key, $namespace);
if ($this->isDisabled) {
$item->disable();
}
if (isset($this->logger)) {
$item->setLogger($this->logger);
}
return $item;
}