РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
678 of 1361 menu

Класс Path

Класс Path из компонента Symfony\Component\Filesystem\Path содержит статические методы для удобной и безопасной работы с файловыми путями. Он позволяет нормализовать пути, объединять их, проверять абсолютность, извлекать имя файла, расширение, директорию, а также строить относительные пути между двумя абсолютными. Класс не требует создания экземпляра - все методы вызываются статически.

Синтаксис

<?php use Symfony\Component\Filesystem\Path; Path::method($path, ...$args); ?>

Пример

Давайте нормализуем путь, содержащий лишние разделители и переходы вверх:

<?php namespace App\Service; use Symfony\Component\Filesystem\Path; class PathService { public function normalize(): string { return Path::normalize('/var/www/../www/app/./src'); } } ?>

Результат выполнения кода:

"/var/www/app/src"

Пример

Давайте объединим несколько частей пути в один:

<?php namespace App\Service; use Symfony\Component\Filesystem\Path; class PathService { public function join(): string { return Path::join('/var/www', 'app', 'src', 'Controller'); } } ?>

Результат выполнения кода:

"/var/www/app/src/Controller"

Пример

Давайте извлечём имя файла, расширение и директорию из пути:

<?php namespace App\Service; use Symfony\Component\Filesystem\Path; class PathService { public function parts(): array { $path = '/var/www/app/article.html.twig'; return [ 'filename' => Path::getFilename($path), 'extension' => Path::getExtension($path), 'directory' => Path::getDirectory($path), ]; } } ?>

Результат выполнения кода:

["filename" => "article.html.twig", "extension" => "twig", "directory" => "/var/www/app"]

Пример

Давайте проверим, является ли путь абсолютным, и построим относительный путь между двумя абсолютными:

<?php namespace App\Service; use Symfony\Component\Filesystem\Path; class PathService { public function relative(): array { $base = '/var/www/app'; $path = '/var/www/app/src/Controller/UserController.php'; return [ 'is_absolute' => Path::isAbsolute($path), 'is_relative' => Path::isRelative($path), 'relative' => Path::makeRelative($path, $base), ]; } } ?>

Результат выполнения кода:

["is_absolute" => true, "is_relative" => false, "relative" => "src/Controller/UserController.php"]

Смотрите также

  • метод join,
    который объединяет несколько частей пути в один
  • метод normalize,
    который приводит путь к каноническому виду
  • метод makeRelative,
    который строит относительный путь между двумя абсолютными
  • метод getExtension,
    который возвращает расширение файла из пути
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить