Метод makePathRelative
Метод makePathRelative класса Filesystem принимает
два параметра: endPath и startPath.
Метод вычисляет путь к endPath относительно
директории startPath и возвращает получившуюся
относительную строку пути. Если относительный путь
невозможно построить, метод выбрасывает исключение
InvalidArgumentException.
Метод удобно применять для вывода коротких путей в логах, консольных командах и при формировании ссылок, когда нежелательно показывать полный абсолютный путь от корня файловой системы.
Синтаксис
<?php
public function makePathRelative(string $endPath, string $startPath): string
?>
Пример
Давайте получим путь к файлу 'article' относительно
директории 'user':
<?php
namespace App\Controller;
use Symfony\Component\Filesystem\Filesystem;
class ArticleController
{
public function index(): void
{
$fs = new Filesystem();
$res = $fs->makePathRelative(
'/var/www/user/article',
'/var/www/user'
);
echo $res;
}
}
?>
Результат выполнения кода:
"article/"
Пример
Давайте получим путь к вложенному файлу
'abcde' относительно директории 'user':
<?php
namespace App\Controller;
use Symfony\Component\Filesystem\Filesystem;
class ArticleController
{
public function index(): void
{
$fs = new Filesystem();
$res = $fs->makePathRelative(
'/var/www/user/hello/abcde',
'/var/www/user'
);
echo $res;
}
}
?>
Результат выполнения кода:
"hello/abcde"
Пример
Давайте получим путь к файлу, который лежит
в родительской директории относительно 'user':
<?php
namespace App\Controller;
use Symfony\Component\Filesystem\Filesystem;
class ArticleController
{
public function index(): void
{
$fs = new Filesystem();
$res = $fs->makePathRelative(
'/var/www/article',
'/var/www/user'
);
echo $res;
}
}
?>
Результат выполнения кода:
"../article"
Смотрите также
-
класс
Filesystem,
который предоставляет методы для работы с файловой системой -
метод
isAbsolutePath,
который проверяет, является ли путь абсолютным -
метод
exists,
который проверяет существование файла или директории -
метод
readFile,
который читает содержимое файла