hautelook/session-storage-handler-chain
A PHP package that chains multiple session storage handlers, delegating session reads, writes, and deletes across them for fallback, migration, or layered persistence in applications that need flexible session storage.
SessionHandlerInterface: writes fan out to N handlers, reads fall through handlers in priority order until one hits. That is the mechanics of a phased cutover — dual-write to old and new backends, read-fallback during the transition, then decommission the old store. Product-visible outcome: a session/storage migration with no forced re-login, and a rollback path that doesn't require a maintenance window.SessionHandlerInterface. The "buy" side is an abandoned Symfony 2 bundle. The correct PM call is to spec the pattern internally and take zero dependency.SessionManager, Illuminate\Session\Handlers\*, Session::extend) has no relationship to it. Its value to a Laravel team is as a reference implementation of read/write chaining, to be reimplemented as a Laravel session handler decorator. Do not put it on a Laravel dependency list.Adopt (or, more realistically, fork the idea) only when all of these hold:
Look elsewhere — usually immediately — when:
Session::extend, or run dual-write in application code during the migration window. Pulling a Symfony 2 bundle into a Laravel app buys you nothing and costs you a dependency.AbstractSessionHandler; there is no maintained version of this bundle.Executives. This is not a feature and shouldn't compete for roadmap space as one. It's the technical shape of a single infrastructure decision: how we move session storage without logging customers out. The pattern is worth adopting; the package is not — it's an unmaintained Symfony 2 artifact with no adoption, so we reimplement the ~100 lines ourselves and own it. Cost is days of engineering, no license, no vendor, no procurement. The measurable payoff is a migration with a rollback switch and a tracked "unexpected logout" rate trending to zero. If we're not migrating a session store this quarter, this is a zero-cost deferral.
Engineering. What the package does mechanically: a composite SessionHandlerInterface that fans writes out to an ordered list of handlers and reads through them until one returns data. Straightforward, but the failure modes are ours to manage — added write latency (every write hits every handler), no cross-store atomicity, no read-repair when a stale handler answers first, mismatched GC and locking behavior between backends, and serialization compatibility across stores. It is also security-sensitive code left unmaintained. Recommendation: implement it as a feature-flagged decorator inside our own session layer, sequence it dual-write → dual-read → cut over, and instrument fallback-hit rate, p95 session write latency, and session-related 401s before removing the old store. Keep the config-level kill switch until the fallback-hit rate has been flat at zero for a full release cycle.
How can I help you explore Laravel packages today?