public function buildUri($uri) { $source_scheme =
$scheme = StreamWrapperManager::
getScheme($uri);
$default_scheme =
$this->
fileDefaultScheme();
if ($source_scheme) { $path = StreamWrapperManager::
getTarget($uri);
// The scheme of derivative image files only needs to be computed for
// source files not stored in the default scheme.
if ($source_scheme !=
$default_scheme) { $class =
$this->
getStreamWrapperManager()->
getClass($source_scheme);
$is_writable = NULL;
if ($class) { $is_writable =
$class::
getType() & StreamWrapperInterface::WRITE;
} // Compute the derivative URI scheme. Derivatives created from writable
// source stream wrappers will inherit the scheme. Derivatives created
// from read-only stream wrappers will fall-back to the default scheme.
$scheme =
$is_writable ?
$source_scheme :
$default_scheme;
} }