Метод readlink
Метод readlink класса Filesystem
читает символическую ссылку и возвращает путь,
на который она указывает. Первым параметром
передаётся путь к символической ссылке.
Метод возвращает строку с целевым путём
или null, если прочитать ссылку не удалось.
Метод удобен, когда нужно узнать, куда ведёт символическая ссылка, не выполняя чтение самого файла по этому пути.
Синтаксис
public function readlink(string $path): ?string
Пример
Давайте создадим символическую ссылку и прочитаем её цель:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentFilesystemFilesystem;
use SymfonyComponentRoutingAttributeRoute;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(): Response
{
$fs = new Filesystem();
$fs->dumpFile('/tmp/target.txt', 'hello');
$fs->symlink('/tmp/target.txt', '/tmp/link.txt');
$res = $fs->readlink('/tmp/link.txt');
return new Response($res);
}
}
?>
Результат выполнения кода:
/tmp/target.txt
Пример
Давайте попробуем прочитать символическую ссылку, которой не существует:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentFilesystemFilesystem;
use SymfonyComponentRoutingAttributeRoute;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(): Response
{
$fs = new Filesystem();
$res = $fs->readlink('/tmp/missing.txt');
return new Response(var_export($res, true));
}
}
?>
Результат выполнения кода:
NULL
Смотрите также
-
класс
Filesystem,
который предоставляет методы для работы с файлами -
метод
symlink,
который создаёт символическую ссылку -
метод
hardlink,
который создаёт жёсткую ссылку -
метод
readFile,
который читает содержимое файла