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

Alternative Laravel Cache Laravel Package

swayok/alternative-laravel-cache

Alternative cache driver for Laravel that brings reliable tag support to any store—file, database, Redis, or Memcached—so you can group and invalidate keys without the limitations of Laravel's built-in tagged cache. Drop-in replacement with a familiar Cache::tags() API.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

  • Architecture fit: Release 6.4.0 is a feature release that deepens the package's alignment with Laravel's native cache stores rather than changing its architecture. Three themes: (1) adoption of Laravel's config('cache.serializable_classes') for file, Redis, and Memcached stores — aligning the package with Laravel's unserialize allow-list hardening; (2) a package-specific config('cache.serializable_base_classes') escape hatch for teams that cannot maintain a full allow-list; (3) replacing Flysystem with Laravel's Filesystem in file stores. The Flysystem-to-Filesystem swap is an internal implementation change with observable behavior; the rest is additive configuration and API parity.
  • Integration feasibility: Moderate-low effort, but no longer a "drop-in and forget" patch. It is a normal Composer minor upgrade (^6.4), yet it introduces new configuration that must be understood and, in most applications, deliberately set. The Flysystem change should be transparent for default file-store usage but needs verification wherever custom filesystem adapters, permissions, or path conventions are in play. The "missing methods" addition improves drop-in parity with Laravel's stores and should be non-breaking in the common case, though subclass overrides should be checked.
  • Technical risk: Medium-low. Principal risks: (a) serialization behavior — cached payloads written under 6.3.3 containing classes not in the new allow-list may fail to unserialize or be treated as misses after upgrade; (b) configuration divergence — serializable_base_classes has no upstream Laravel equivalent, so it is a maintained fork of behavior that must be documented and kept in sync; (c) the Flysystem removal may alter file-store behavior around directory creation, permissions, error handling, atomic writes, and any custom Flysystem adapter previously used as the file-store backend; (d) new public methods expand the API surface and are a semver-minor contract maintainers must now keep stable. No deprecations or explicit breaking changes are announced.
  • Key questions: Which Laravel version introduced cache.serializable_classes, and what is the package's minimum supported Laravel/PHP now? Does serializable_base_classes merge with, or override, serializable_classes, and what is the precedence and default (allow-all vs deny-all)? What happens to already-cached payloads containing classes outside the allow-list — silent miss, exception, or partial data? Does the file store still support custom Flysystem adapters (e.g., object storage) or is Filesystem now mandatory? Which methods were added, and are they declared on interfaces? Are there CI matrices covering Laravel 12/13 × file/Redis/Memcached, and concurrency tests for lock behavior retained from 6.3.3? Is 6.4.0 strictly additive at the public API level?

Integration Approach

  • Stack fit: Best fit for Laravel applications using the package's file, Redis, or Memcached cache stores and its lock functionality. The release improves parity with native Laravel stores and keeps the Laravel 12-and-earlier compatibility restored in 6.3.3 intact, while remaining usable on Laravel 13+.
  • Migration path: Treat as a minor upgrade with configuration work: bump the Composer constraint, publish/verify the new cache.serializable_classes and serializable_base_classes settings per environment, run the full test suite, then exercise cache read/write and lock workflows on each cache driver in use. Plan for a cold-cache window or an explicit cache flush if existing entries contain classes outside the new allow-list.
  • Compatibility: Verify each cache driver actually used — file, Redis, Memcached — since the release touches all three. The Flysystem-to-Filesystem change is the main compatibility question for anyone who customized file-store paths, disk configuration, permissions, or adapters. Confirm PHP version, Laravel version, and whether any code subclasses the package's store classes and would be affected by the added methods.
  • Sequencing: (1) Dev: install 6.4.0, define serializable classes, run unit/integration tests. (2) Staging with production-representative cache drivers and real serialized payloads, including entries written by 6.3.3. (3) Targeted validation of file-store behavior (disk paths, permissions, concurrent writes) if file cache is used. (4) Canary/limited production with a cache flush or documented fallback. (5) Broad rollout, then pin the version and record the config decision.

Operational Impact

  • Maintenance: Mixed. Alignment with Laravel's serialization config reduces long-term divergence, and the Filesystem switch reduces dependency surface by dropping Flysystem-specific code. However, serializable_base_classes is a package-only knob that must be documented, tested, and maintained against future Laravel changes — a small but permanent divergence cost. Maintainers should publish the supported Laravel/PHP matrix and the config precedence rules.
  • Support: Expect a short-term uptick in tickets around "cached objects stopped resolving" or "class not allowed to unserialize" after upgrade, and around file-cache permissions/paths following the Filesystem change. Clear release documentation with a recommended serializable_classes baseline and an explicit statement of serializable_base_classes semantics (and its security trade-off of broadening the allow-list) will contain most of this.
  • Scaling: No direct scaling impact expected; Redis and Memcached paths are unchanged apart from serialization filtering, which adds negligible overhead. File-store performance characteristics may shift slightly with Filesystem versus Flysystem — worth a sanity benchmark if file cache is used heavily or sits on network/shared storage. Re-validate lock behavior under concurrency for queue and scheduled-job workloads, carrying forward the 6.3.3 validation.
  • Failure modes: (a) Unserialize failures or silent cache misses for pre-existing entries containing now-disallowed classes; (b) misconfigured or overly broad serializable_base_classes weakening the hardening intent; (c) file-store regressions — permission errors, missing directories, path differences, non-atomic writes — especially where custom Flysystem adapters were relied upon; (d) subclass conflicts or unexpected behavior from newly added store methods; (e) Composer resolution issues if the release tightened Laravel/PHP constraints. Rollback is feasible by pinning to 6.3.3, but pairs with a cache flush because serialized payload formats and allow-list expectations differ across versions.
  • Ramp-up: Low-to-moderate for developers (new config keys are simple, but the security semantics of an allow-list need explanation), and moderate for operators if file cache is in use. Before approving production rollout, a TPM should obtain: the confirmed Laravel/PHP support matrix, the precedence and defaults for serializable_classes vs serializable_base_classes, confirmation that custom Flysystem adapters are or are not still supported, the list of added methods and whether interfaces changed, CI evidence across Laravel 12/13 and all three drivers, and a short rollback-plus-cache-flush runbook.
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