lithium\net\http\Media::path()
Returns the physical path to an asset in the /webroot directory of an application or
plugin.
Parameters
-
string
$pathsThe path to a web asset, relative to the root path for its type. For example, for a JavaScript file in
/webroot/js/subpath/file.js, the correct value for$pathwould be'subpath/file.js'. -
string
$typeA valid asset type, i.e.
'js','cs','image', or another type registered withMedia::assets(), or'generic'. -
array
$optionsThe options used to calculate the path to the file.
Returns
stringReturns the physical filesystem path to an asset in the /webroot directory.
Source
public static function path($path, $type, array $options = array()) {
$defaults = array(
'base' => null,
'paths' => array(),
'suffix' => null,
'library' => true,
'scope' => false
);
if (!$base = static::_assets($type)) {
$base = static::_assets('generic');
}
$options += ($base + $defaults);
$paths = $options['paths'];
if ($options['scope']) {
$root = static::webroot(false, $options['scope']);
} else {
$root = static::webroot($options['library']);
Libraries::get(true, 'name') === $options['library'] ? end($paths) : reset($paths);
}
if ($qOffset = strpos($path, '?')) {
$path = substr($path, 0, $qOffset);
}
if ($path[0] === '/') {
$file = $root . $path;
} else {
$template = str_replace('{:library}/', '', key($paths));
$insert = array('base' => $root) + compact('path');
$file = String::insert($template, $insert);
}
return realpath($file);
}