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 4d 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 37% 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

2993d 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.2k3.3M74](/packages/unisharp-laravel-filemanager)[barryvdh/elfinder-flysystem-driver

A Flysystem Driver for elFinder

1864.7M31](/packages/barryvdh-elfinder-flysystem-driver)[itskodinger/midia

Simple Media manager for your Laravel project

1415.8k](/packages/itskodinger-midia)[jeremytubbs/deepzoom

Deepzoom Tile Generator for OpenSeadragon

5018.7k2](/packages/jeremytubbs-deepzoom)[farhanshares/laravel-mediaman

MediaMan - The most elegant &amp; powerful media management package for Laravel!

293.7k](/packages/farhanshares-laravel-mediaman)[xefi/faker-php-images

Faker extension to generate images

402.6k](/packages/xefi-faker-php-images)

PHPackages © 2026

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