integrated/storage-bundle
A Symfony storage bundle that provides a simple abstraction for managing files, uploads, and storage paths across local and remote adapters, with configurable services and minimal setup for existing PHP applications.
Storage facade. The answer here should be: defer, and let a concrete feature force the decision.Storage::disk() calls, ad-hoc path conventions, and hand-rolled signed-URL logic — a maintainability and security win independent of any feature. But Laravel already provides this via Storage + Flysystem; the package only earns its place if it adds multi-tenant disk routing, retention rules, virus-scan hooks, or chunked uploads that the framework does not.-bundle naming, *Bundle class, DependencyInjection extensions, and config/bundles.php registration signal a Symfony package, not a Laravel one. For a Laravel product this is a strategic decision about hiring, onboarding, and upgrade paths — not a technical footnote. Adopting it means owning a bridge.eactive internal Bitbucket org. The real gate is confirming source access, license terms permitting fork and redistribution, and whether a support agreement exists. That is a procurement decision that must close before any engineering spike is scheduled.Consider it only when most of the following hold:
eactive/Integrated ecosystem — existing services depend on it, or a partner mandates it — so integration patterns and a support path are known rather than guessed.*Bundle / DependencyInjection structure the package actually ships.Look elsewhere — or build thin — when:
Illuminate\Support\Facades\Storage over league/flysystem with league/flysystem-aws-s3-v3 covers 80–90% of this in an afternoon, with a large community, active security coverage, and zero bus factor.Gating checks before any pilot: confirm the target framework and PHP version from composer.json; verify extra.laravel.providers vs. config/bundles.php registration expectations; run a time-boxed spike (install via VCS repository entry, wire one non-critical bucket, upload/download/delete, verify signing and failure behaviour); check for a competing driver name that could shadow production disks; measure transitive dependency weight and memory profile on multi-hundred-MB uploads. Set an explicit exit criterion — if the spike exceeds ~2 days, the borrow case usually loses to a 1-day in-house adapter.
One-liner for executives: This is a pre-built storage abstraction from an internal PHP ecosystem with no external adoption — no stars, no dependents, no community, no release history. It is a reuse opportunity, not a strategic bet. Recommend a time-boxed spike, not a roadmap commitment, and do not spend roadmap capacity on it until a concrete feature (uploads, media, exports) forces the choice.
For engineering: The upside is skipping commodity plumbing — disk abstraction, path conventions, URL signing, streaming — and inheriting whatever conventions the originating team established. The costs are concrete: it is Bitbucket-hosted and effectively single-source; the -bundle packaging indicates Symfony conventions that would need a Laravel adapter (or a re-scope); and there is no user base to inherit bug fixes or security patches from. We own it the day we adopt it, which means an internal fork, a SHA pin, a mirrored remote so CI does not depend on Bitbucket uptime, and a named owner with a quarterly review.
Recommendation to the group: Default to Laravel's native Storage/Flysystem unless (a) we are already inside that ecosystem, or (b) the spike demonstrably saves meaningful time and we have secured source access plus a named internal owner plus acceptable license terms. Frame the decision as "adopt-with-a-fork-and-an-owner" or "build thin" — never "take a dependency." Keep it off the roadmap until a real feature creates the deadline.
Risk to state plainly: A zero-adoption package in the storage path has failure modes we cannot outsource — silent breakage on framework or Flysystem upgrades, security issues in file uploads / path construction / signed URLs with no upstream patch, cross-tenant path leakage from naive key construction, silent fallback to ephemeral local disk on provider error, and knowledge concentrated in people we may not have. That is an acceptable profile for a two-day experiment behind a feature flag on one bucket. It is not acceptable as an unexamined production dependency.
How can I help you explore Laravel packages today?