fi1a/filesystem

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

1.0.8 2023-02-26 01:27 UTC

This package is auto-updated.

Last update: 2024-12-26 05:50:26 UTC


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:

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

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:

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

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:

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