minor
This commit is contained in:
parent
97fefd71ca
commit
0d4222cb65
1 changed files with 26 additions and 13 deletions
39
src/Path.php
39
src/Path.php
|
|
@ -23,7 +23,15 @@ class Path
|
||||||
if (isset($this->url['path'])) {
|
if (isset($this->url['path'])) {
|
||||||
$path = $this->url['path'];
|
$path = $this->url['path'];
|
||||||
// $path = preg_replace('/\/{2,}/', '/', $path);
|
// $path = preg_replace('/\/{2,}/', '/', $path);
|
||||||
$this->path = self::optimize($this->fromString($path));
|
$list = self::listFromString($path);
|
||||||
|
|
||||||
|
if (isset($this->url['scheme']) && !isset($this->url['host'])) {
|
||||||
|
$this->absolute = false;
|
||||||
|
} else if ($list[0] == '' && count($list) > 1) {
|
||||||
|
$this->absolute = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->path = self::optimize($list);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -118,16 +126,11 @@ class Path
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
private function fromString ($path)
|
public static function listFromString ($path)
|
||||||
{
|
{
|
||||||
assert(is_string($path));
|
assert(is_string($path));
|
||||||
|
|
||||||
$list = preg_split('#\\\\|/#s', $path);
|
$list = preg_split('#\\\\|/#s', $path);
|
||||||
if (isset($this->url['scheme']) && !isset($this->url['host'])) {
|
|
||||||
$this->absolute = false;
|
|
||||||
} else if ($list[0] == '' && count($list) > 1) {
|
|
||||||
$this->absolute = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $list;
|
return $list;
|
||||||
}
|
}
|
||||||
|
|
@ -269,14 +272,12 @@ class Path
|
||||||
return self::join($base, $path);
|
return self::join($base, $path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Обьединяет строки в путь соединяя необходимым разделителем
|
* Обьединяет строки в Path соединяя необходимым разделителем
|
||||||
* fixme не обрабатывает параметры урла, решение Path::join(SITE_WWW_PATH) . '?param=pampam'
|
* fixme не обрабатывает параметры урла, решение Path::join(SITE_WWW_PATH) . '?param=pampam'
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
static function join($_rest)
|
static function fromJoin($_rest) {
|
||||||
{
|
|
||||||
$args = func_get_args();
|
$args = func_get_args();
|
||||||
$result = array();
|
$result = array();
|
||||||
$parts0 = new Path(array_shift($args));
|
$parts0 = new Path(array_shift($args));
|
||||||
|
|
@ -288,7 +289,19 @@ class Path
|
||||||
// При обьединении ссылок можно обьеденить path, query, fragment
|
// При обьединении ссылок можно обьеденить path, query, fragment
|
||||||
$path = implode(self::SEPARATOR, call_user_func_array('array_merge', $result));
|
$path = implode(self::SEPARATOR, call_user_func_array('array_merge', $result));
|
||||||
$parts0->url['path'] = ($parts0->isAbsolute()) ? '/' . $path : $path;
|
$parts0->url['path'] = ($parts0->isAbsolute()) ? '/' . $path : $path;
|
||||||
return self::makeUrl($parts0->url);
|
return $parts0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Обьединяет строки в строку пути соединяя необходимым разделителем
|
||||||
|
* fixme не обрабатывает параметры урла, решение Path::join(SITE_WWW_PATH) . '?param=pampam'
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
static function join($_rest)
|
||||||
|
{
|
||||||
|
$args = func_get_args();
|
||||||
|
$path = call_user_func_array("self::fromJoin", $args);
|
||||||
|
return self::makeUrl($path->url);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Проверка структуры имени файла
|
// Проверка структуры имени файла
|
||||||
|
|
@ -441,7 +454,7 @@ class Path
|
||||||
*/
|
*/
|
||||||
static function updateRelativePathOnFileMove($relativePath, $srcFile, $dstFile) {
|
static function updateRelativePathOnFileMove($relativePath, $srcFile, $dstFile) {
|
||||||
$srcToDst = self::relative($srcFile, $dstFile);
|
$srcToDst = self::relative($srcFile, $dstFile);
|
||||||
return self::join($srcToDst, $relativePath);
|
return self::normalize(self::join($srcToDst, $relativePath));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue