Метод getLongestCommonBasePath
Метод getLongestCommonBasePath класса Path
принимает массив путей и возвращает наибольший общий
базовый путь для всех переданных путей. Первым
параметром передаётся массив объектов Path.
Метод возвращает объект Path, представляющий
общий базовый путь, либо null, если общего
базового пути не найдено.
Синтаксис
public function getLongestCommonBasePath(Path ...$paths): ?Path
Пример
Давайте найдём общий базовый путь для нескольких абсолютных путей:
<?php
use Symfony\Component\Filesystem\Path;
$paths = [
new Path('/var/www/project/src/Controller'),
new Path('/var/www/project/src/Entity'),
new Path('/var/www/project/src/Repository'),
];
$res = Path::getLongestCommonBasePath(...$paths);
echo $res;
?>
Результат выполнения кода:
"/var/www/project/src"
Пример
Давайте найдём общий базовый путь для относительных путей:
<?php
use Symfony\Component\Filesystem\Path;
$paths = [
new Path('var/www/project/src'),
new Path('var/www/project/templates'),
new Path('var/www/project/config'),
];
$res = Path::getLongestCommonBasePath(...$paths);
echo $res;
?>
Результат выполнения кода:
"var/www/project"
Пример
Давайте рассмотрим случай, когда общего базового пути не существует:
<?php
use Symfony\Component\Filesystem\Path;
$paths = [
new Path('/var/www/project'),
new Path('/usr/local/bin'),
new Path('/home/user'),
];
$res = Path::getLongestCommonBasePath(...$paths);
var_dump($res);
?>
Результат выполнения кода:
NULL
Смотрите также
-
класс
Path,
который представляет путь к файлу или директории -
метод
join,
который соединяет несколько путей в один -
метод
makeRelative,
который делает путь относительным -
метод
makeAbsolute,
который делает путь абсолютным