Метод join класса Path
Метод join класса Path соединяет
текущий путь с переданным путём и возвращает
новый объект Path. Первым параметром
передаётся путь, который нужно присоединить.
Если присоединяемый путь абсолютный, то он
полностью заменяет исходный. Метод корректно
обрабатывает разделители и относительные
сегменты '.' и '..'.
Синтаксис
public function join(string $path): self
Пример
Давайте соединим два относительных пути:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Filesystem\Path;
class PathController extends AbstractController
{
#[Route('/path/join', name: 'path_join')]
public function join(): Response
{
$path = new Path('user');
$res = $path->join('article');
return new Response($res->toString());
}
}
?>
Результат выполнения кода:
"user/article"
Пример
Давайте соединим путь с абсолютным путём:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Filesystem\Path;
class PathController extends AbstractController
{
#[Route('/path/join/absolute', name: 'path_join_absolute')]
public function joinAbsolute(): Response
{
$path = new Path('user');
$res = $path->join('/var/www');
return new Response($res->toString());
}
}
?>
Результат выполнения кода:
"/var/www"
Пример
Давайте соединим пути с относительным сегментом '..':
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Filesystem\Path;
class PathController extends AbstractController
{
#[Route('/path/join/dotdot', name: 'path_join_dotdot')]
public function joinDotDot(): Response
{
$path = new Path('user/article');
$res = $path->join('../hello');
return new Response($res->toString());
}
}
?>
Результат выполнения кода:
"user/hello"
Смотрите также
-
класс
Path,
который представляет путь к файлу или директории -
метод
canonicalize,
который приводит путь к каноническому виду -
метод
normalize,
который нормализует разделители пути -
метод
makeAbsolute,
который делает путь абсолютным