fi1a/filesystem 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

fi1a/filesystem

最新稳定版本:1.0.8

Composer 安装命令:

composer require fi1a/filesystem

包简介

PHP filesystem обеспечивает уровень абстракции файловой системы

README 文档

README

Latest Version Software License PHP Version Coverage Status Total Downloads Support mail

Уровень абстракции файловой системы позволяет разрабатывать приложение без необходимости знать, где и как будут храниться файлы. Предоставляет один интерфейс для взаимодействия с разными типами файловых систем. Также классы абстракции файла и папки имеют вспомогательные методы для работы с ними.

Доступные адаптеры:

  • Fi1a\Filesystem\Adapters\LocalAdapter - адаптер файловой системы.

Установка

Установить этот пакет можно как зависимость, используя Composer.

composer require fi1a/filesystem

Класс файловой системы

Класс файловой системы имеет три фабричных метода для получения классов абстракции файлов и папок.

  • factory - опредляет до чего передан путь и создает объект абстракции файла или папки;
  • factoryFolder - создает объект абстракции папки файловой системы;
  • factoryFile - создает объект абстракции файла файловой системы.
use Fi1a\Filesystem\Adapters\LocalAdapter;
use Fi1a\Filesystem\Filesystem;

$adapter = new LocalAdapter(__DIR__ . '/Resources');
$filesystem = new Filesystem($adapter);

$folder = $filesystem->folder('./folder'); // Fi1a\Filesystem\FolderInterface
$folder->make();

$folder = $filesystem->factory('./folder'); // Fi1a\Filesystem\FolderInterface
$folder->isExist(); // true

$file = $filesystem->file($folder->getPath() . '/file.txt'); // Fi1a\Filesystem\FileInterface
$file->make();

$file = $filesystem->factory('/folder/file.txt'); // Fi1a\Filesystem\FileInterface
$file->isExist(); // true

Класс абстракции папки

Класс абстракции папки предназначен для упрощения работы с папкой, независимо от выбранной файловой системы.

Методы Fi1a\Filesystem\FolderInterface:

Метод Описание
getPath() Возвращает путь
isExist(): bool Проверяет существование
isFile(): bool Является ли файлом
isFolder(): bool Является ли папкой
getSize() Возвращает размер
getName() Возвращает имя
getParent() Возвращает класс родительской папки
peekParentPath() Возвращает путь до родительской папки
canRead(): bool Проверяет возможность чтения
canWrite(): bool Проверяет возможность записи
make(): bool Создание
delete(): bool Удаляет
copy(string $path): bool Копирует
rename(string $newName): bool Переименовывает
move(string $path): bool Перемещает
all() Возвращает коллекцию из дочерних элементов
allFiles() Возвращает коллекцию из дочерних файлов
allFolders() Возвращает коллекцию из дочерних папок
getFilesystem(): FilesystemInterface Возвращает объект файловой системы
getFolder(string $path): FolderInterface Возвращает дочернюю папку
getFile(string $path): FileInterface Возвращает дочерний файл

Пример создания папки:

use Fi1a\Filesystem\Adapters\LocalAdapter;
use Fi1a\Filesystem\Filesystem;

$adapter = new LocalAdapter(__DIR__ . '/Resources');
$filesystem = new Filesystem($adapter);

$folder = $filesystem->folder('./folder'); // Fi1a\Filesystem\FolderInterface
if (!$folder->isExist()) {
    $folder->make(); // true
}

Класс абстракции файла

Класс абстракции файла предназначен для упрощения работы с файлом, независимо от выбранной файловой системы.

Методы Fi1a\Filesystem\FileInterface:

Метод Описание
getPath() Возвращает путь
isExist(): bool Проверяет существование
isFile(): bool Является ли файлом
isFolder(): bool Является ли папкой
getSize() Возвращает размер
getName() Возвращает имя
getBaseName(): string Возвращает имя без расширения
getExtension() Возвращает расширение
getParent() Возвращает класс родительской папки
peekParentPath() Возвращает путь до родительской папки
canRead(): bool Проверяет возможность чтения
canWrite(): bool Проверяет возможность записи
canExecute(): bool Проверяет возможность выполнения
make(): bool Создание
delete(): bool Удаляет
copy(string $path): bool Копирует
rename(string $newName): bool Переименовывает
move(string $path): bool Перемещает
read() Возвращает содержимое файла
write(string $content) Запись в файл
getMTime() Возвращает время изменения файла
getFilesystem(): FilesystemInterface Возвращает объект файловой системы

Пример записи в файл:

use Fi1a\Filesystem\Adapters\LocalAdapter;
use Fi1a\Filesystem\Filesystem;

$adapter = new LocalAdapter(__DIR__ . '/Resources');
$filesystem = new Filesystem($adapter);

$file = $filesystem->file('./folder/file.txt'); // Fi1a\Filesystem\FileInterface
$file->write('file content'); // 12

Адаптеры

Адаптер файловой системы

Адаптер файловой системы Fi1a\Filesystem\Adapters\LocalAdapter предназначен для использования локальной файловой системы в классах абстракции.

use Fi1a\Filesystem\Adapters\LocalAdapter;
use Fi1a\Filesystem\Filesystem;

$adapter = new LocalAdapter(__DIR__ . '/Resources');
$filesystem = new Filesystem($adapter);

Аргументы конструктора Fi1a\Filesystem\Adapters\LocalAdapter:

Аргумент Описание
string $directory Путь ограничивающий доступ
int $rights = 0775 Права устанавливаемые по умолчанию для новых папок и файлов

Вспомогательные методы для файловой системы содержатся в классе Fi1a\Filesystem\Utils\LocalUtil:

Метод Описание
isAbsolutePath(string $path): bool Определяет является ли путь абсолютным

统计信息

  • 总下载量: 1.53k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 5
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-12-07