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

andrew13/cabinet

Cabinet is a lightweight Laravel package for managing files and uploads. It provides a simple API for storing, attaching, retrieving, and deleting files, making it easy to add a filing-cabinet-style media layer to your Eloquent models.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for file/media handling. The package's surface area — a storage-driver abstraction, upload validation, filename/path conventions, and optional image handling — is a usable requirements checklist for any build/buy/partner evaluation. It tells you what "minimum viable upload" means so you can price native work honestly instead of guessing.
  • Scoping the first uploads epic. Use it to enumerate the v1 feature floor (driver abstraction, validation rules, folder layout, deletion lifecycle). Anything beyond that floor — transformations, CDN/edge delivery, resumable uploads, AV scanning — is a separate roadmap line, and this package's era is a useful argument for keeping it separate.
  • Roadmap sequencing for media/DAM features. It is evidence that image manipulation and multi-driver storage were already "extra concerns" a decade ago; they should be sequenced behind observed usage (upload volume, transform requests, delivery cost) rather than bundled into v1.
  • Dependency-risk governance. A concrete, dated example for the "unmaintained dependency" line item in engineering reviews — useful when justifying an upgrade budget or a minimum-supported-version policy.
  • API/UX convention review. As a historical Laravel-idiomatic interface, it can inform internal naming and design critique. Not a production dependency.
  • What it should not inform: modern storage architecture. It predates presigned/direct-to-cloud uploads, async processing, and signed-URL delivery as defaults; treat its patterns as background, not guidance.

When to Consider This Package

Consider it only if:

  • You are actively maintaining a Laravel 4 application (PHP 5.x era) and need a drop-in upload handler today — and even then, only as a fork you own with versions pinned.
  • You want a read-only reference artifact during architecture or estimation work on a new upload feature.
  • You need a very small, self-contained upload abstraction and are prepared to vendor the code and accept full ownership of it.

Look elsewhere if any of the following is true:

  • Greenfield work, or any project on Laravel 5.5+ / 6+ / 8+ / 10+ / 11+, or PHP 8+.
  • Requirements include security patching, S3/GCS/Azure, CDN delivery, image transformation pipelines, resumable or direct-to-cloud uploads, AV scanning, multi-tenancy, signed URLs, audit trails, or GDPR deletion workflows.
  • You need a maintained dependency with issue triage and a release history — last release was 2015-02-11 and Laravel 4 has been end-of-life for roughly a decade.
  • You need documented upgrade paths or first-class test support.
  • Your risk posture or compliance regime requires a vendor/security review. No maintainer, no security contact, no CVE process is an automatic fail.
  • You are evaluating this on adoption signal alone: ~100 stars and a low opportunity score indicate a narrow, dated niche, not an emerging standard.

How to Pitch It (Stakeholders)

For executives (one paragraph): cabinet is a 2015-era Laravel 4 file upload package we evaluated as an input to a build-vs-buy decision, not as a candidate dependency. It has had no releases in about a decade and is tied to a framework version that reached end-of-life in 2015, so adopting it would mean forking, patching, and owning the code indefinitely — the opposite of leverage. The recommendation is to standardize on maintained options: Laravel's native filesystem with Flysystem for storage, plus a maintained media library or a managed media service if we need transformations and delivery. We should also formalize "unmaintained dependency" as a standing risk item in roadmap reviews, using this as the worked example.

For engineering (one paragraph): treat it as a design reference, not a dependency. Its scope — driver abstraction over local and S3-style storage, upload validation, filename conventions, optional image handling — maps cleanly onto today's Filesystem/Flysystem API plus a thin internal upload service. Everything we actually need beyond that floor (presigned direct uploads, async processing and transformations, retention and deletion policy, signed delivery) has no path here. If we encounter it in a legacy codebase, pin the version, fork it into our namespace, add a deprecation ticket the same day, and budget the replacement explicitly rather than letting it drift.

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.
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package