/** * @param string|ZendUriInterface|null $uri */ public function __construct($uri = null) { $this->setScheme('data'); $this->setEncoding('base64'); if ($uri instanceof self) { $this->setMimeType($uri->getMimeType()); $this->setEncoding($uri->getEncoding()); $this->setRawData($uri->getRawData()); } elseif (is_string($uri)) { $this->parse($uri); } elseif ($uri instanceof ZendUriInterface) { $this->parse($uri->toString()); } elseif ($uri !== null) { throw new InvalidArgumentException(sprintf('Expecting a string or a URI object, received "%s"', is_object($uri) ? get_class($uri) : gettype($uri))); } }