alt-three/locker
Alt Three Locker is a simple feature flag package for Laravel, letting you define toggles in config and check them anywhere in your app. Enable or disable features globally or per user without redeploying, keeping risky changes behind safe, manageable switches.
Cache::lock()), WithoutOverlapping job middleware, and onOneServer() scheduling.symfony/lock or a bespoke ~150-line service, not resurrection of this package.Consider it only in narrow, legacy-shaped situations:
Look elsewhere (or build natively) when:
Cache::lock()->get() with block() and release() covers the same ground with first-party support, docs, and security patches. This alone disqualifies Locker for greenfield work.Summary for executives and engineering leadership: Locker is a small MIT-licensed Laravel helper that prevents two processes from doing the same thing at once. The underlying need is real and recurring — duplicate job execution, overlapping scheduled tasks, and race conditions on shared records all cost us money and trust. But the package itself is archived, last released in July 2020, has no dependents, and has been functionally superseded by atomic locks built into Laravel since 5.6.
Recommendation: do not adopt. Standardize on framework-native locking (Cache::lock(), WithoutOverlapping, onOneServer()) backed by Redis, and treat Locker as prior art rather than a dependency. This costs us a small amount of internal design work and buys us first-party maintenance, security patching, and PHP 8 compatibility — the three things an archived repo cannot offer.
For engineering: the migration story is cheap. Locker's surface area is a lock manager with acquire/release semantics; replacing it is a handful of call sites moving to Cache::lock($key, $ttl)->block($wait, $callback). Budget roughly a day for a typical service, plus test coverage for the failure paths (lock expiry mid-work, release by a non-owner, Redis unavailability). If any team is currently on Locker, that migration should be scheduled before the next major framework upgrade, not after.
Risk if we adopt anyway: an unmaintained dependency in a correctness-critical path, no upstream fixes, and a future forced migration under time pressure. The only defensible reason to touch it is a legacy app pinned below Laravel 5.6 — and even then, fork and vendor it rather than depend on the upstream repo.
How can I help you explore Laravel packages today?