phpsoftbox / storage
Storage component for the PhpSoftBox framework
v1.0.0
2026-09-29 10:26 UTC
Requires
- php: ^8.5
- aws/aws-sdk-php: ^3.0
- psr/http-message: ^2.0
Requires (Dev)
- phpsoftbox/cs-fixer: ^1.2.2
- phpsoftbox/http-message: ^1.0
- phpunit/phpunit: ^13.3
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-15 05:14:32 UTC
README
About
phpsoftbox/storage — компонент хранения файлов для PhpSoftBox с поддержкой локального диска и S3-совместимых хранилищ. По умолчанию ориентирован на Yandex Cloud Object Storage, но можно подключить любой совместимый endpoint.
Ключевые свойства:
- менеджер
Storageдля работы с дисками - драйверы:
LocalStorage,S3Storage FileHelperсо статическими утилитами для локальных путей и файловой системы- единые правила путей для всех драйверов: нормализация, запрет
.., атомарная запись в Local, постраничный листинг и серверное копирование в S3
Quick Start
use PhpSoftBox\Storage\Storage; $storage = new Storage([ 'default' => 'uploads', 'disks' => [ 'uploads' => [ 'driver' => 'local', 'rootPath' => __DIR__ . '/storage', // только абсолютный путь 'baseUrl' => 'https://cdn.local', ], ], ]); $contents = $storage->disk('uploads')->get('reports/hello.txt');
Для неописанного диска по умолчанию задайте верхнеуровневый абсолютный rootPath
(new Storage(['rootPath' => '/var/app/storage'])), иначе disk() бросит StorageException.
S3:
use PhpSoftBox\Storage\Storage; $storage = new Storage([ 'default' => 's3', 'disks' => [ 's3' => [ 'driver' => 's3', 'bucket' => 'my-bucket', 'key' => $_ENV['S3_KEY'], 'secret' => $_ENV['S3_SECRET'], 'endpoint' => 'https://storage.yandexcloud.net', 'region' => 'ru-central1', 'prefix' => 'app', ], ], ]); $storage->disk('s3')->put('reports/hello.txt', 'Hello!');