Метод chmod
Метод chmod класса Filesystem изменяет права доступа к файлу или директории.
Первым параметром передаётся путь к файлу или директории, вторым - режим доступа,
третьим - маска, которая вычитается из режима. Четвёртым параметром можно включить
рекурсивное изменение прав для директории.
Синтаксис
public function chmod(
string|iterable $files,
int $mode,
int $umask = 0000,
bool $recursive = false,
bool $force = false
): void
Пример
Давайте создадим файл и установим ему права 0644:
<?php
namespace AppService;
use SymfonyComponentFilesystemFilesystem;
class FileService
{
public function changeMode(): void
{
$fs = new Filesystem();
$file = __DIR__ . '/file.txt';
$fs->dumpFile($file, 'abcde');
$fs->chmod($file, 0644);
echo 'Режим доступа: ' . substr(sprintf('%o', fileperms($file)), -4);
}
}
?>
Результат выполнения кода:
"Режим доступа: 0644"
Пример
Давайте установим права 0755 для директории и всех вложенных файлов рекурсивно:
<?php
namespace AppService;
use SymfonyComponentFilesystemFilesystem;
class FileService
{
public function changeDirMode(): void
{
$fs = new Filesystem();
$dir = __DIR__ . '/user';
$fs->mkdir($dir);
$fs->dumpFile($dir . '/hello.txt', 'hello');
$fs->chmod($dir, 0755, 0000, true);
echo 'Режим доступа: ' . substr(sprintf('%o', fileperms($dir)), -4);
}
}
?>
Результат выполнения кода:
"Режим доступа: 0755"
Пример
Давайте применим маску 0022, которая вычитается из указанного режима:
<?php
namespace AppService;
use SymfonyComponentFilesystemFilesystem;
class FileService
{
public function changeModeWithUmask(): void
{
$fs = new Filesystem();
$file = __DIR__ . '/article.txt';
$fs->dumpFile($file, 'article');
$fs->chmod($file, 0777, 0022);
echo 'Режим доступа: ' . substr(sprintf('%o', fileperms($file)), -4);
}
}
?>
Результат выполнения кода:
"Режим доступа: 0755"
Смотрите также
-
класс
Filesystem,
который предоставляет методы для работы с файловой системой -
метод
chown,
который изменяет владельца файла или директории -
метод
chgrp,
который изменяет группу файла или директории -
метод
touch,
который устанавливает время доступа и модификации файла