nurymbet/filesystem

dev-main 2025-06-01 23:48 UTC

This package is auto-updated.

Last update: 2025-07-02 00:10:04 UTC


README

Библиотека для удобной работы с файловой системой: FileManager — для работы с файлами, FolderManager — для папок.

📦 Установка

composer require nurymbet/phantom-filesystem

📄 FileManager

Работа с файлами.

Инициализация

use Nurymbet\Phantom\FileSystem\FileManager;

$fileManager = new FileManager('/your/root/path');

Методы

new(string $file, string $content = ''): bool

Создаёт новый файл с содержимым (по умолчанию пустым).

del(string $file): bool

Удаляет файл.

read(string $file): string

Возвращает содержимое файла.

write(string $file, string $content, bool $append = false): bool

Записывает или дописывает содержимое в файл.

rename(string $from, string $to): bool

Переименовывает файл.

copy(string $from, string $to): bool

Копирует файл.

exists(string $file): bool

Проверяет существование файла.

getSize(string $file): int|false

Возвращает размер файла в байтах.

getMimeType(string $file): string|false

Определяет MIME-тип файла.

getExtension(string $file): string

Возвращает расширение файла.

getBasename(string $file): string

Возвращает имя файла без пути.

getDirname(string $file): string

Возвращает путь к директории.

getPermissions(string $file): int|false

Получает права доступа к файлу.

setPermissions(string $file, int $permissions): bool

Устанавливает права доступа.

getOwner(string $file): int|false

Возвращает ID владельца.

📁 FolderManager

Работа с директориями.

Инициализация

use Nurymbet\Phantom\FileSystem\FolderManager;

$folderManager = new FolderManager('/your/root/path');

Методы

new(string $name, int $permission = 0777, bool $recursive = false): bool

Создаёт новую папку.

del(string $name): bool

Удаляет папку.

rename(string $from, string $to): bool

Переименовывает папку.

copy(string $from, string $to): bool

Копирует папку рекурсивно.

move(string $from, string $to): bool

Перемещает папку.

exists(string $name): bool

Проверяет существование папки.

getRoot(): string

Возвращает корневую директорию.

listFolders(?string $folder = null): array

Возвращает список подпапок.

clearFolder(string $folder): bool

Удаляет всё содержимое внутри папки, но не саму папку.

isEmpty(string $folder): bool

Проверяет, пуста ли папка.

hasAccess(string $folder): bool

Проверяет доступ к папке (чтение/запись).

setPermissions(string $folder, int $permission): bool

Устанавливает права доступа к папке.

getPermissions(string $folder): int|false

Возвращает текущие права доступа.

static sanitizeFolderName(string $name): string

Очищает имя папки от нежелательных символов.

🔍 Примеры использования

Работа с файлами

use Nurymbet\Phantom\FileSystem\FileManager;

$fileManager = new FileManager('/var/www/app/storage');

$fileManager->new('example.txt', 'Привет, мир!');
$content = $fileManager->read('example.txt');
$fileManager->write('example.txt', "\nДобавка", true);

Работа с папками

use Nurymbet\Phantom\FileSystem\FolderManager;

$folderManager = new FolderManager('/var/www/app/storage');

$folderManager->new('logs');
$folderManager->isEmpty('logs'); // true
$folderManager->clearFolder('logs');