Метод makeDirectory
Метод makeDirectory применяется к фасаду Storage
и позволяет создать новую директорию в выбранном диске.
Первым параметром передаётся путь к создаваемой директории,
вторым - битовая маска прав доступа (по умолчанию 0755),
третьим - флаг для рекурсивного создания вложенных директорий.
Метод возвращает true при успешном создании или
выбрасывает исключение League\Flysystem\UnableToCreateDirectory.
Синтаксис
<?php
use Illuminate\Support\Facades\Storage;
Storage::makeDirectory($path, $mode = 0755, $recursive = false);
?>
Пример
Давайте создадим директорию 'images' в корне диска:
<?php
use Illuminate\Support\Facades\Storage;
$res = Storage::makeDirectory('images');
if ($res) {
echo "Directory created successfully";
}
?>
Результат выполнения кода:
"Directory created successfully"
Пример
Создадим вложенную директорию 'posts/photos'
с помощью рекурсивного создания:
<?php
use Illuminate\Support\Facades\Storage;
$res = Storage::makeDirectory('posts/photos', 0755, true);
if ($res) {
echo "Nested directories created successfully";
}
?>
Результат выполнения кода:
"Nested directories created successfully"
Пример
Создадим директорию с определёнными правами доступа в публичном диске:
<?php
use Illuminate\Support\Facades\Storage;
$res = Storage::disk('public')->makeDirectory('uploads', 0777);
if ($res) {
echo "Directory with custom permissions created";
}
?>
Результат выполнения кода:
"Directory with custom permissions created"
Пример
Проверим создание директории и обработаем возможную ошибку:
<?php
use Illuminate\Support\Facades\Storage;
try {
$res = Storage::makeDirectory('archive/2026');
if ($res) {
echo "Directory created successfully";
}
} catch (\Exception $e) {
echo "Error: " . $e->getMessage();
}
?>
Результат выполнения кода:
"Directory created successfully"
Смотрите также
-
метод
deleteDirectory,
который удаляет директорию -
метод
exists,
который проверяет существование файла или директории -
метод
directories,
который получает список директорий -
метод
disk,
который позволяет выбрать диск для работы