Метод symlink
Метод symlink класса Filesystem создаёт
символическую ссылку (symlink) на указанный файл
или директорию. Первым параметром передаётся
исходный путь, на который создаётся ссылка,
вторым - путь самой символической ссылки.
Метод возвращает null и выбрасывает
исключение, если ссылку создать не удалось.
Синтаксис
public function symlink(string $originDir, string $targetDir, bool $copyOnWindows = false): void
Пример
Давайте создадим символическую ссылку на файл:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentFilesystemFilesystem;
class SymlinkController extends AbstractController
{
public function index(): Response
{
$fs = new Filesystem();
$fs->dumpFile('article.txt', 'hello');
$fs->symlink('article.txt', 'article-link.txt');
return new Response('link created');
}
}
?>
После выполнения в корне проекта появится файл
article-link.txt, который указывает
на article.txt.
Пример
Давайте создадим символическую ссылку на директорию:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentFilesystemFilesystem;
class SymlinkController extends AbstractController
{
public function index(): Response
{
$fs = new Filesystem();
$fs->mkdir('article');
$fs->symlink('article', 'article-link');
return new Response('dir link created');
}
}
?>
После выполнения появится директория
article-link, ссылающаяся на article.
Пример
Давайте проверим, что ссылка действительно создана:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentFilesystemFilesystem;
class SymlinkController extends AbstractController
{
public function index(): Response
{
$fs = new Filesystem();
$fs->dumpFile('article.txt', 'hello');
$fs->symlink('article.txt', 'article-link.txt');
return new Response($fs->readlink('article-link.txt'));
}
}
?>
Результат выполнения кода:
"article.txt"
Смотрите также
-
класс
Filesystem,
который предоставляет методы для работы с файлами -
метод
hardlink,
который создаёт жёсткую ссылку на файл -
метод
readlink,
который читает цель символической ссылки -
метод
remove,
который удаляет файл или директорию