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

Метод 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,
    который создаёт файл или обновляет время доступа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить