Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Cabinet Laravel Package

andrewelkins/cabinet

Cabinet is a Laravel package for managing file uploads and attachments. It lets you associate uploaded files with Eloquent models, handle storage and retrieval, and add file management to your app through a simple, expressive API.

View on GitHub
Deep Wiki
Context7

Laravel 4 File upload package

Frequently asked questions about Cabinet
What is andrewelkins/cabinet used for?
Cabinet is a Laravel 4 package for managing file uploads and attachments. It lets you associate uploaded files with Eloquent models and handle storage and retrieval through a simple, expressive API. It was built for Laravel 4-era applications and is not designed for modern Laravel upload workflows.
Does Cabinet work with Laravel 5 or later?
Cabinet targets Laravel 4 and likely relies on old Illuminate conventions and PHP 5.x-era runtime behavior. It is not recommended for Laravel 5 or later and will probably require a fork, dependency pinning, or replacement. For modern Laravel, use native validation plus filesystem disks and a maintained media package if needed.
How do I install Cabinet in a Laravel 4 app?
Installation is via Composer, but feasibility depends on your exact Laravel 4 minor version, PHP runtime, and existing dependency constraints. Verify constraints in an isolated branch before adding it to production. Expect conflicts with modern illuminate, symfony, Flysystem, and image libraries.
Can I use Cabinet with PHP 8?
No, not safely. Cabinet was last released in 2015 and targets Laravel 4 and PHP 5-era runtimes, so it is unlikely to support PHP 8 or current dependency versions. Running it on PHP 8 would require a fork plus a security and compatibility review, and even then replacement is the better path.
How does Cabinet associate uploaded files with Eloquent models?
Cabinet is designed to let you attach uploaded files to Eloquent models and retrieve them through the package API. The exact schema and relationship details depend on the package migrations and configuration, so review them in a discovery spike. Keep file metadata independent so you can migrate storage later.
Is Cabinet maintained or safe for production?
Cabinet is effectively unmaintained: the last release was 2015-02-11, Laravel 4 is end-of-life, and dependencies are likely abandoned. That means no modern security patching for upload validation, path handling, MIME checks, or image processing. Only consider it as a short-lived compatibility shim in an existing Laravel 4 app after security review and with a funded replacement plan.
What are alternatives to Cabinet for file uploads in modern Laravel?
For Laravel 8+ and PHP 8+, use native Laravel validation plus Filesystem and Flysystem disks, queued processing, and object storage where needed. Add a maintained media or file-management package if you need richer behavior. Wrap uploads behind an internal service interface so storage and validation can evolve independently.
How do I handle file validation and storage security with Cabinet?
Do not rely on the package alone. Enforce authorization, file type and size validation, safe path handling, MIME verification, and malware scanning in your own upload flow. Also confirm upload directory permissions and web-server limits, and add cleanup for orphaned files.
Can I migrate from Cabinet to Laravel's native filesystem disks?
Yes, but plan it as a replacement rather than a drop-in swap. Wrap Cabinet calls behind an internal FileUploadService, persist metadata such as owner, path, MIME type, size, checksum, and status independently, then build a parallel modern upload path using Laravel disks and validation. Feature-flag traffic, dual-write or backfill metadata, and retire the package once legacy uploads are drained.
Does Cabinet support S3 or object storage?
There is no evidence that Cabinet supports modern S3 or object storage integrations; it appears oriented toward Laravel 4-era local filesystem handling. If you need S3 or other Flysystem-backed storage, use current Laravel filesystem disks instead. In a legacy app, keep Cabinet as a bounded upload adapter and isolate storage decisions from domain logic.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core
nodisrupt/laravel-agent
sierratecnologia/media-manager