/**
  * Get current key, value or metadata.
  *
  * @return mixed
  */
 public function current()
 {
     if ($this->mode == IteratorInterface::CURRENT_AS_SELF) {
         return $this;
     }
     $key = $this->key();
     if ($this->mode == IteratorInterface::CURRENT_AS_VALUE) {
         return $this->storage->getItem($key);
     } elseif ($this->mode == IteratorInterface::CURRENT_AS_METADATA) {
         return $this->storage->getMetadata($key);
     }
     return $key;
 }
 /**
  * Get metadata
  *
  * @param string $key
  * @return array|bool Metadata on success, false on failure
  */
 public function getMetadata($key)
 {
     $options = $this->getOptions();
     if ($options->getReadable() && $options->getClearStatCache()) {
         clearstatcache();
     }
     return parent::getMetadata($key);
 }