PHPackages                             programulin/storage - 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. programulin/storage

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

programulin/storage
===================

v2.0.1(8y ago)022PHPPHP &gt;=5.4.0

Since Jan 27Pushed 8y agoCompare

[ Source](https://github.com/programulin/storage)[ Packagist](https://packagist.org/packages/programulin/storage)[ RSS](/packages/programulin-storage/feed)WikiDiscussions master Synced 2w ago

READMEChangelog (2)Dependencies (1)Versions (3)Used By (0)

Библиотека для удобного управления файлами.
===========================================

[](#библиотека-для-удобного-управления-файлами)

Библиотека позволяет удобно работать с хранилищами файлов и генерировать кешированные копии изображений.

Установка
---------

[](#установка)

Устанавливаем c помощью Composer:

```
composer require programulin/storage:dev-master
```

Как работать
------------

[](#как-работать)

Сначала настраиваем все хранилища:

```
use Programulin\Storage\StorageManagerStatic;

// Создаём простое хранилище:
StorageManagerStatic::make('product_files') // Название хранилища
        ->path(__DIR__ . '\data\product_files') // Путь к хранилищу
        ->level(1) // Сколько уровней подпапок создавать (от 0 до 3)
        ->url('/data/product_files/'); // URL хранилища относительно корня сайта

// Создаём простое хранилище + хранилище кешированных копий:
StorageManagerStatic::make('product_images')
        ->path(__DIR__ . '\data\product_images')
        ->level(1)
        ->url('/data/product_images/')

        ->cachePath(__DIR__ . '\data\cache\product_images') // Путь к хранилищу кеша
        ->cacheLevel(2) // Сколько уровней подпапок создавать (от 0 до 3)
        ->cacheUrl('/data/cache/product_images/') // URL хранилища кэша относительно корня сайта
        ->cacheSizes([ // Размеры кешированных копий изображений. Указываем название кеша, ширину и высоту
            's' => [200, 200], // Если изображение изначально не квадратное, с меньших сторон появятся белые полосы
            'w' => [400, 'auto'], // Ширина 400, высота вычислится автоматически
            'h' => ['auto', 400], // Высота 400, ширина вычислится автоматически
            'o' => ['auto', 'auto'], // Изображение будет оригинальных размеров
        ])
        ->cacheExt('jpg'); // Расширение всех кешированных копий
```

Если не нравится статика:

```
use Programulin\Storage\StorageManager;

$m = new StorageManager();
$m->make('product_files');
... // И далее как в примере выше
```

Теперь можно работать с файлами:

```
// Получаем объект файла по его id и расширению:
$file = StorageManagerStatic::storage('product_images')->file(1058, 'jpg');

// Получаем информацию о файле:
echo $file->path(); // Абсолютный путь к файлу
echo $file->url(); // URL файла от корня сайта
echo $file->cachePath('s'); // Абсолютный путь к кешу
echo $file->cacheUrl('s'); // URL кеша от корня сайта

echo $file->has(); // Проверка существования файла
echo $file->hasCache('s'); // Проверка существования кеша

$file->cache('s'); // Создание кеша

$file->load('some/path/to/file.jpg'); // Загружаем новый файл
$file->delete(); // Удаляем файл и кеш

// Быстрый вывод файла на экран
$file->response();
$file->response('png', 20); // Можно указать расширение (null если не хотите менять) и качество
$file->responseCache('s'); // Аналогично для кеша
$file->responseCache('s', 'jpg', 80);

```

###  Health Score

25

—

LowBetter than 35% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity59

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 ~37 days

Total

2

Last Release

3039d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/4b81553fa8096deea815e14c899cab0b65398b02e9b7bfd4031168f9a44eb1f9?d=identicon)[programulin](/maintainers/programulin)

### Embed Badge

![Health badge](/badges/programulin-storage/health.svg)

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

###  Alternatives

[unisharp/laravel-filemanager

A file upload/editor intended for use with Laravel 5 to 10 and CKEditor / TinyMCE

2.1k3.4M81](/packages/unisharp-laravel-filemanager)[unopim/unopim

UnoPim Laravel PIM

10.5k2.2k](/packages/unopim-unopim)[barryvdh/elfinder-flysystem-driver

A Flysystem Driver for elFinder

1864.9M40](/packages/barryvdh-elfinder-flysystem-driver)[october/rain

October Rain Library

1601.7M73](/packages/october-rain)[symfony/ux-cropperjs

Cropper.js integration for Symfony

19346.6k3](/packages/symfony-ux-cropperjs)[oxid-esales/media-library-module

Media library for OXID eShop

1676.6k4](/packages/oxid-esales-media-library-module)

PHPackages © 2026

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