nette/caching
Nette Caching is a fast, flexible PHP caching library with memory, file, and distributed backends. It supports expiration, tags, namespaces, and dependency-based invalidation, making it easy to speed up PHP applications.
Architecture fit
Illuminate\Cache) with stores, Cache::remember, tags, atomic locks, and events. nette/caching solves the same problem behind a different contract (Cache → Storage → Journal), so broad adoption means two cache abstractions in one codebase unless deliberately scoped to a bounded module.Cache::load($key, $cb, $dependencies) with file/tag/callback/constant dependencies), capture() for atomic fragment caching, sliding expiration, namespaced keys, and bulk read/write. These are credible but narrow advantages over Laravel's tag + lock primitives.Storage/Journal, config, key-prefix strategy, and either a PSR-16 seam or a custom Illuminate\Contracts\Cache\Repository adapter. T-shirt sizing: 2–4 day spike, 1–2 sprints for a thin bridge plus tests, days per bounded context to migrate.NOASSERTION license is a hard legal gate before any code lands; 435 stars / 0 listed dependents means thin ecosystem validation and due diligence shifting to us; the project has shipped BC breaks in minor releases (3.3.0 CacheExtension path change, SmartObject removal, Latte 2 dropped in 3.4.0); the internal FileStorage format and cross-method lock semantics are version-coupled (per docs/internals.md); there is a historical deadlock in fallback paths and an overloaded null trap that only surface under concurrency. Observability is a gap: no Laravel cache events, Telescope, or Horizon visibility without custom instrumentation.Storage implementation? Is it Octane-safe under long-lived workers? What is the rollback plan if the package stalls upstream?Stack fit
Nette\Caching\Storage (File, Memcached, or custom) behind our own interface so application code depends on our abstraction, not the vendor.Illuminate\Contracts\Cache\Repository adapter if a drop-in is mandatory, and accept that Laravel tags and nette dependencies are not semantically 1:1 — a leaked abstraction here is a maintenance tax.Migration path
Compatibility
Sequencing
Maintenance
NOASSERTION license means ongoing compliance ownership rather than vendor-backed assurance.Support
docs/internals.md."load/save/remove/capture) but the traps — dependency desugaring, overloaded null, cross-method locking — require deliberate study. Plan ~1–2 weeks for one engineer to reach proficiency and produce an internal note.Scaling
Storage, scaling story is weaker than the incumbent — that build cost belongs in the business case.Failure modes
Recommendation to stakeholders: fund legal review and a bounded spike only if a specific gap is measurable; otherwise invest in instrumenting and tuning Laravel's existing Redis/Memcached configuration. Keep nette/caching as a tactical interoperability option, not a platform standard.
How can I help you explore Laravel packages today?