treehouselabs/swift-bundle
A Symfony bundle from Treehouse Labs that integrates Swift, providing configuration, service wiring, and framework-ready defaults to simplify setup and usage within Symfony applications.
Architecture fit. The first and most consequential finding is categorical: treehouselabs/swift-bundle is a Symfony bundle, not a Laravel package. There is no ServiceProvider, no config/*.php publishable config, and no facade. Its integration surface is the Symfony DI container and Extension/CompilerPass machinery, which Laravel does not consume. Adopting it in a Laravel application is not an install-and-configure exercise; it is a port. That alone reclassifies this from "dependency" to "build-versus-buy candidate."
Second, the package is scoped to the OpenStack Swift protocol as an object-store backend. In a Laravel application, object storage is consumed through the Storage facade backed by Flysystem. This bundle predates Flysystem's adapter model and, at its April 2015 release date, is written against a PHP 5.x / Symfony 2.x lineage. It does not implement League\Flysystem\FilesystemAdapter, so even a successful port would not make Storage::disk('swift') work without a custom adapter written by us.
Integration feasibility. Low. Three independent blockers stack: (1) framework mismatch (Symfony bundle vs. Laravel container), (2) PHP runtime drift (2015-era code vs. PHP 8.1+ typed-property and deprecation expectations under Laravel 10/11), and (3) missing Flysystem contract. The only realistic reuse is lifting the Swift client/auth/HTTP handling out of the bundle as source-level inspiration — and that assumes the protocol logic is correct and testable, which we cannot verify from a 1-star, zero-dependent repository.
Technical risk. Effectively unquantifiable, which is the risk. The signals are uniformly negative:
Key questions for the requesting team.
league/flysystem-openstack-swift (or a maintained equivalent) already evaluated? If a maintained Flysystem adapter satisfies the requirement, this bundle is moot.Stack fit. Poor as-is, viable only as a component donor. The realistic Laravel-native shape is: Storage facade → Flysystem v3 FilesystemAdapter → an internal Swift adapter class. The bundle's value proposition is limited to reference material for OpenStack Keystone auth (v2/v3 token flows), container/object REST semantics, and large-object (SLO/DLO) segmentation.
Migration path. Recommended sequencing, cheapest-first:
league/flysystem-aws-s3-v3 and take zero protocol risk.league/flysystem-openstack-swift behind Storage::extend('swift', …). Validate against our actual cluster: Keystone version, auth scopes, container ACLs, and large-object behavior. This is the preferred landing zone if Swift is a hard requirement.Storage::disk(...) throughout so the backend remains swappable. This is the single highest-leverage architectural decision here and is independent of which Swift option we choose.Compatibility. No compatibility with Laravel's supported PHP matrix can be assumed. Expect to rework autoloading (PSR-4 conventions have shifted), remove Symfony\Component\* coupling, and replace any Guzzle 3/4 or Buzz-era HTTP client with Guzzle 7 (Laravel's bundled version). Treat every file as untrusted until reviewed.
Sequencing decision. Do not add this package to composer.json at any point — including "just to evaluate." Vendor it as a read-only reference or fork it privately. A zero-dependent 2015 repo in the lockfile creates audit noise and a false sense of provenance without buying anything.
Maintenance. The dominant cost. There is no upstream to track, so every PHP minor version, every OpenStack Swift API change, and every security advisory becomes an internal ticket against code we did not write and did not spec. Compare against a maintained Flysystem adapter, where that burden is externalized. This package converts a vendor relationship into an unowned internal product — precisely the outcome a TPM should avoid on a 1-star dependency.
Support. Zero. No maintainer response path we can rely on, no SLA, no CVE feed, no LTS branch. If it is adopted and breaks, the incident resolution is "we read the source under pressure," which is the worst possible debugging posture for an authentication-adjacent code path.
Scaling. Unknown and untested at our volume. The specific risk areas for Swift at scale are well understood in the abstract — token refresh under concurrent workers, multipart/segmented upload reassembly, and retry/backoff on 5xx from the proxy tier — but this implementation's handling of them is undocumented and unproven. Horizontal scaling of Laravel workers will multiply any per-request auth inefficiency (a token fetch per upload is a common flaw in 2015-era clients). Load-testing would be entirely our expense.
Failure modes to instrument if adopted regardless.
Ramp-up. Deceptively high. The API looks small enough that an engineer will estimate days; the actual work is reading 2015-era protocol code, re-validating it against a live cluster, and writing the Flysystem adapter and test suite — realistically 2–4 engineer-weeks including hardening, versus under a week for the maintained-adapter path.
Recommendation. Do not adopt. Fund a one-to-two-week spike on a maintained Flysystem Swift adapter, and in parallel test whether the business requirement survives contact with an S3-compatible alternative. This package should be recorded in our evaluation log as a reference implementation only, with an explicit "no dependency" disposition.
How can I help you explore Laravel packages today?