Метод chown
Метод chown класса Filesystem
меняет владельца файла или директории.
Первым параметром передаётся путь к файлу,
вторым - имя нового владельца.
Метод возвращает true при успешном
выполнении и бросает исключение при ошибке.
Синтаксис
public function chown(string $filename, string $user): bool
Пример
Давайте сменим владельца файла 'article.txt'
на пользователя 'user':
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/', name: 'article_index')]
public function index(): Response
{
$fs = new Filesystem();
$fs->chown('article.txt', 'user');
return new Response('owner changed');
}
}
?>
Результат выполнения кода:
"owner changed"
Пример
Давайте проверим, что метод возвращает
true при успешной смене владельца:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/', name: 'article_index')]
public function index(): Response
{
$fs = new Filesystem();
$res = $fs->chown('article.txt', 'user');
return new Response($res ? 'true' : 'false');
}
}
?>
Результат выполнения кода:
"true"
Пример
Давайте сменим владельца сразу для нескольких файлов, используя массив путей:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/', name: 'article_index')]
public function index(): Response
{
$fs = new Filesystem();
$files = ['article.txt', 'user.txt', 'hello.txt'];
foreach ($files as $file) {
if ($fs->exists($file)) {
$fs->chown($file, 'user');
}
}
return new Response('done');
}
}
?>
Результат выполнения кода:
"done"
Смотрите также
-
класс
Filesystem,
который предоставляет методы для работы с файлами -
метод
chmod,
который меняет права доступа к файлу -
метод
chgrp,
который меняет группу владельца файла -
метод
touch,
который создаёт файл или обновляет время доступа