misaf / vendra-multimedia
Media library integration and Filament media management for Vendra
Package info
github.com/misaf/vendra-multimedia
Type:vendra-module
pkg:composer/misaf/vendra-multimedia
v1.12.3
2026-08-22 21:15 UTC
Requires
- php: ^8.4
- awcodes/filament-badgeable-column: ^4.0
- filament/spatie-laravel-media-library-plugin: ^5.6.8
- misaf/filament-jalali: ^5.1.4
- misaf/vendra-support: v1.12.3
- spatie/laravel-medialibrary: ^11.23.2
- spatie/laravel-package-tools: ^1.93.1
README
Tenant-aware media management for Vendra applications.
Features
- Tenant-scoped Spatie Media Library model
- UUID-based media storage paths
- Default WebP media conversions helper
- Filament resource and optional widget on the
adminpanel - Translation and migration publishing support
Requirements
- PHP 8.4+
- Laravel 13
- Filament 5
- Livewire 4
- Pest 4
misaf/vendra-supportspatie/laravel-medialibrary
Installation
composer require misaf/vendra-multimedia php artisan vendor:publish --tag=medialibrary-migrations php artisan vendor:publish --tag=vendra-multimedia-migrations php artisan migrate
Set the media model and path generator in config/media-library.php:
'media_model' => \Misaf\VendraMultimedia\Models\Multimedia::class, 'path_generator' => \Misaf\VendraMultimedia\Support\DefaultPathGenerator::class,
Optional translations publish:
php artisan vendor:publish --tag=vendra-multimedia-translations
Usage
Use Spatie Media Library as usual:
$model ->addMedia($pathToFile) ->toMediaCollection('default');
Models can reuse the default conversions:
use Misaf\VendraMultimedia\Concerns\HasDefaultMediaConversions; class Product extends Model implements HasMedia { use HasDefaultMediaConversions; use InteractsWithMedia; }
In Filament, media records are available on the admin panel.
Testing
Run the package checks from the project root:
php artisan test --compact --testsuite=vendra-multimedia
composer stan
License
MIT. See LICENSE.