artisanpack-ui / media-library
Media library package for ArtisanPack UI
Maintainers
Details
gitlab.com/jacob-martella-web-design/artisanpack-ui/artisanpack-ui-media-library
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Forks: 0
pkg:composer/artisanpack-ui/media-library
Requires
- php: ^8.2
- artisanpack-ui/accessibility: @dev
- artisanpack-ui/core: ^1.0
- artisanpack-ui/hooks: ^1.1
- artisanpack-ui/livewire-ui-components: @dev
- artisanpack-ui/security: @dev
- illuminate/support: ^12.17.0
- intervention/image: ^3.0
- laravel/framework: ^12.0
- laravel/sanctum: ^4.1
- livewire/livewire: ^3.6
- php-ffmpeg/php-ffmpeg: ^1.0
Requires (Dev)
- artisanpack-ui/code-style: ^1.0
- dealerdirect/phpcodesniffer-composer-installer: ^1.1
- mockery/mockery: ^1.6
- orchestra/testbench: ^10.0
- pestphp/pest: ^3.8
- pestphp/pest-plugin-laravel: ^3.1
- squizlabs/php_codesniffer: ^3.13
This package is auto-updated.
Last update: 2025-11-03 20:03:32 UTC
README
A comprehensive media management package for Laravel applications with support for image processing, folder organization, tagging, and modern image format conversion (WebP/AVIF).
Features
- ๐ Hierarchical Folder Organization - Organize media into nested folders
- ๐ท๏ธ Tag Management - Tag media items for easy categorization
- ๐ผ๏ธ Image Processing - Automatic thumbnail generation in multiple sizes
- ๐ Modern Image Formats - Automatic conversion to WebP and AVIF
- ๐ฆ Storage Abstraction - Support for multiple storage backends via Laravel's filesystem
- ๐ฌ Video Support - Video thumbnail extraction using FFmpeg (optional)
- ๐ Advanced Search & Filtering - Search by name, filter by type, folder, or tag
- ๐ฏ Drag & Drop Upload - Modern upload interface with progress tracking
- ๐ฑ๏ธ Media Modal Component - Single/multi-select modal for choosing media with context support
- ๐ Permission-based Access Control - Granular capability-based permissions
- ๐จ Publishable Views - Customize all Blade views to match your design
- ๐งช Comprehensive Test Coverage - Over 100 tests with 90%+ coverage
Requirements
- PHP 8.2 or higher
- Laravel 12.0 or higher
- Intervention Image 3.0 for image processing
- FFmpeg (optional, for video thumbnail extraction)
Installation
Install via Composer:
composer require artisanpack-ui/media-library
Quick Start
// Upload media
$media = apUploadMedia($file, [
'title' => 'My Image',
'alt_text' => 'Alt text for accessibility',
'folder_id' => 1,
]);
// Get media URL
$url = apGetMediaUrl($mediaId, 'thumbnail');
// Display image
$media = apGetMedia($mediaId);
echo $media->displayImage('large', ['class' => 'img-fluid']);
Documentation
- Getting Started - Quick start guide
- Installation - Detailed installation instructions
- Configuration - All configuration options
- Helper Functions - Common usage patterns
- Working with Models - Advanced model usage
- Livewire Components - UI component guide
- API Reference - Complete API documentation
- CMS Integration - Digital Shopfront CMS setup
- Permissions - Access control guide
- Customization - Customization options
- Troubleshooting - Common issues and solutions
- FAQ - Frequently asked questions
Testing
Run the test suite:
composer test
Contributing
Contributions are welcome! Please ensure all tests pass and code follows ArtisanPack UI Code Standards.
Security
If you discover a security vulnerability, please send an email to security@artisanpack.com.
Credits
- Jacob Martella
- Intervention Image for image processing
- PHP-FFMpeg for video processing
License
This package is proprietary software developed by ArtisanPack UI.