PHPackages                             fi1a/filesystem - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. fi1a/filesystem

ActiveLibrary[File &amp; Storage](/categories/file-storage)

fi1a/filesystem
===============

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

1.0.8(3y ago)01.7k2MITPHPPHP ^7.3 || ^8

Since Dec 7Pushed 3y ago1 watchersCompare

[ Source](https://github.com/fi1a/filesystem)[ Packagist](https://packagist.org/packages/fi1a/filesystem)[ Docs](https://github.com/fi1a/filesystem)[ RSS](/packages/fi1a-filesystem/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (9)Dependencies (6)Versions (11)Used By (2)

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

[](#php-filesystem-обеспечивает-уровень-абстракции-файловой-системы)

[![Latest Version](https://camo.githubusercontent.com/3d0fe603b25ff50627cccc099bc0654b39200ea5442158726f3f56d5f6f28155/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f666931612f66696c6573797374656d3f6c6162656c3d72656c65617365)](https://packagist.org/packages/fi1a/filesystem)[![Software License](https://camo.githubusercontent.com/463e392acf2073326f17fd72a58fc6e7bd77899387749666b6d562422adebd72/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f666931612f66696c6573797374656d3f7374796c653d666c61742d737175617265)](https://github.com/fi1a/filesystem/blob/master/LICENSE)[![PHP Version](https://camo.githubusercontent.com/d074e4048604b9fbaaddcb7d23e2fb53d6eab24e150bb1308087b83fe4509c9e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f666931612f66696c6573797374656d3f7374796c653d666c61742d737175617265)](https://php.net)[![Coverage Status](https://camo.githubusercontent.com/0c967d746eb7f4fe28065a3b94d23faa207cd6f4a968535b20fce0310a87cf89/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f7665726167652d3130302532352d677265656e)](https://camo.githubusercontent.com/0c967d746eb7f4fe28065a3b94d23faa207cd6f4a968535b20fce0310a87cf89/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f7665726167652d3130302532352d677265656e)[![Total Downloads](https://camo.githubusercontent.com/fdc7a5efc94348c957f99eef20cf3a20e76c3b7fb8fa59d5ea5dc00eeba6c6be/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f666931612f66696c6573797374656d2e7376673f7374796c653d666c61742d73717561726526636f6c6f72423d6d656469756d76696f6c6574726564)](https://packagist.org/packages/fi1a/filesystem)[![Support mail](https://camo.githubusercontent.com/116fa0d447870a3a6c6c1f4b296c889707a6e30a69c2b28cbe8d0f6f5c3d4920/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6d61696c2d737570706f7274253430666931612e72752d627269676874677265656e)](mailto:support@fi1a.ru)

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

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

- `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Определяет является ли путь абсолютным

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity19

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~9 days

Total

10

Last Release

1178d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/d4f26c1adaa632741fadf55b1328cbd22ac91282aecfae2027d105df0ddedee4?d=identicon)[fi1a](/maintainers/fi1a)

---

Tags

directoryfilefilesystemfolderphp

###  Code Quality

TestsPHPUnit

Static AnalysisPsalm

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/fi1a-filesystem/health.svg)

```
[![Health](https://phpackages.com/badges/fi1a-filesystem/health.svg)](https://phpackages.com/packages/fi1a-filesystem)
```

###  Alternatives

[knplabs/gaufrette

PHP library that provides a filesystem abstraction layer

2.5k39.8M123](/packages/knplabs-gaufrette)[superbalist/flysystem-google-storage

Flysystem adapter for Google Cloud Storage

26320.6M30](/packages/superbalist-flysystem-google-storage)[illuminate/filesystem

The Illuminate Filesystem package.

15161.6M2.6k](/packages/illuminate-filesystem)[creocoder/yii2-flysystem

The flysystem extension for the Yii framework

2931.7M62](/packages/creocoder-yii2-flysystem)[flowjs/flow-php-server

PHP library for handling chunk uploads. Works with flow.js html5 file uploads.

2451.6M15](/packages/flowjs-flow-php-server)[madnest/madzipper

Easier zip file handling for Laravel applications.

1382.3M6](/packages/madnest-madzipper)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
