jord-jd/do-file-cache-psr-6
PSR-6 cache adapter for DO File Cache, letting you use the PSR-6 caching interface with a simple file-based backend. Install via Composer: composer require jord-jd/do-file-cache-psr-6.
jord-jd/do-file-cache behind Psr\Cache\CacheItemPoolInterface. It matters if your product ships a framework-agnostic library or SDK that must accept a PSR-6 pool from the host app, or if you are consolidating several cache call-sites onto the PSR-6 contract. It does not by itself give you a better cache — it gives you a port.jord-jd/do-file-cache that need a PSR-6 surface without a rewrite.Adoption verdict for a PM: tactical, reversible, low-value dependency. Worth a ticket; not worth an architecture review.
Adopt only when all of these hold:
jord-jd/do-file-cache — otherwise this adapter is a dead-end wrapper around a cache library you have no other reason to use.CacheItemPoolInterface, not Laravel's Illuminate\Contracts\Cache\Repository (PSR-16-style) contract. Verify this first: Laravel's Cache facade is not a PSR-6 pool, so "works with the Cache facade" claims should be treated as unproven until you've seen it resolve from the container in a spike.Look elsewhere when:
file store already does this, is maintained by the framework, and is zero new dependencies.symfony/cache (with FilesystemAdapter, ArrayAdapter, RedisAdapter) is a PSR-6 and PSR-16 implementation with thousands of dependents, first-class docs, and predictable release cadence. For most teams this is the correct buy, and it makes this package redundant.Risk gates to clear before any code is written:
symfony/cache in under a day. Price that in rather than treating abandonment as a crisis.Spike (half a day) before deciding: install, wire it into the container, exercise getItem/save/expiresAfter/deleteItem plus a TTL expiry and a concurrent-write smoke test, confirm PHP and framework version support, and confirm the maintainer's fork/ownership story.
For executives: "This is a small adapter that lets part of our codebase talk to caching through a PHP standard interface rather than a framework-specific one. The cost is trivial — a composer dependency and a day of integration — and it buys us the ability to swap cache backends later without a rewrite. The reason to be cautious is the other side of the ledger: it's an eight-star, single-maintainer, LGPL-licensed library with no downstream users. My recommendation is to take it as a tactical dependency, keep the dependency count honest, and not present it as a platform or performance investment. If our legal team objects to the licence or we want a supported option, symfony/cache is the substitute and the decision costs us nothing."
For engineering: "It's a PSR-6 CacheItemPoolInterface wrapper over jord-jd/do-file-cache. Take it only if you actually need a PSR-6 pool — and check first, because Laravel's repository is PSR-16-shaped, so the integration story in the README is thinner than it looks. If you want PSR-6 for real, symfony/cache's FilesystemAdapter gives you the same thing with maintenance and docs. If you take this one: pin it, add a container binding plus an integration test for TTL expiry and concurrent writes, and treat it as forkable — it's small enough that owning it is cheaper than a support negotiation. Don't put sessions, locks, or counters on it, and don't expect cross-node consistency. Estimated integration effort: half a day to spike, one day to productionize."
How can I help you explore Laravel packages today?