- 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.