nimblephp / storagebox
Universal file storage module for NimblePHP - stores files (local/MinIO/S3) with metadata in the database
0.0.2
2026-07-01 14:34 UTC
Requires
- php: >=8.2
- aws/aws-sdk-php: ^3.0
- krzysztofzylka/database-manager: >=1.1.22
- nimblephp/framework: >=0.4.14
- nimblephp/migrations: >=0.3.2
Requires (Dev)
- phpunit/phpunit: ^11.0
This package is auto-updated.
Last update: 2026-07-01 14:35:01 UTC
README
Uniwersalny moduł przechowywania plików dla NimblePHP. Zapisuje pliki przez wybrany
driver (lokalny system plików lub MinIO/S3) i przechowuje ich metadane w bazie danych
(tabela module_storage_file).
Zawartość
Module— rejestracja modułu i uruchamianie migracji (onUpdate)ModuleStorageFileModel— manager plików (zapis, kopiowanie, pobieranie, duplikacja, usuwanie, auto-usuwanie)MinioStorage— driver MinIO / AWS S3 (rozszerzaNimblePHP\Framework\Storage)StorageProvider— enum providerów (storage,minio)StorageBoxException— wyjątek modułusrc/Migrations/— migracja tworząca tabelęmodule_storage_file
Instalacja
composer require nimblephp/storage-box
Migracja
Migracje uruchamiają się automatycznie przy aktualizacji aplikacji
(Module::onUpdate(), grupa module_storage_file). Można też uruchomić ręcznie:
php vendor/bin/nimble migration:run --dir=vendor/nimblephp/storage-box/src/Migrations
Użycie
use NimblePHP\Storagebox\ModuleStorageFileModel; use NimblePHP\Storagebox\StorageProvider; $model = $this->loadModel(ModuleStorageFileModel::class); $model->provider = StorageProvider::minio; // domyślnie StorageProvider::storage // zapis z zawartości $id = $model->write($content, type: 'avatar', fileName: 'photo.jpg'); // kopiowanie z lokalnej ścieżki $id = $model->copy('/tmp/upload.jpg', type: 'attachment', fileName: 'upload.jpg'); // pobranie zawartości $content = $model->getFileContent($id); // usunięcie $model->setId($id)->deleteFile();
Konfiguracja MinIO / S3 (zmienne środowiskowe)
MINIO_HOST— endpoint MinIO; puste = tryb AWS S3MINIO_BUCKETMINIO_REGIONMINIO_USERNAMEMINIO_PASSWORD