- What is fm/cache used for in Laravel?
- fm/cache is a lightweight cache abstraction that gives Laravel apps a simple API for storing, retrieving, and forgetting values, with tag-aware grouping and config-driven TTLs and store selection. It was designed as a reusable building block rather than a full cache driver. It is archived and explicitly superseded by treehouselabs/cache, and modern Laravel's native Cache facade covers these needs more safely.
- Does fm/cache support Laravel 8, 9, 10, or 11?
- No. Its Composer constraints target illuminate/support ~4.x through 5.0 and PHP 5.3 to 5.5. Installing on modern Laravel or PHP 8+ requires --ignore-platform-reqs, a VCS repository entry, or a full fork. The package was last released in 2014 and is archived, so current Laravel versions are not supported.
- How do I install fm/cache with Composer?
- In principle you would run composer require fm/cache, but the archived composer.json will not satisfy PHP 8.x or modern illuminate/* constraints. Practical installation needs --ignore-platform-reqs, a vcs repository entry, or a full fork. There is no visible CI or test suite to validate behavior after installation.
- Is fm/cache maintained or abandoned?
- It is archived upstream, last released on 2014-05-16, with zero stars and zero dependents. The original authors explicitly superseded it with treehouselabs/cache. There are no PRs, releases, or security and CVE intake, so if you fork it you become the de facto maintainer.
- What is the difference between fm/cache and Laravel's native Cache facade?
- Laravel's native cache already provides repository bindings, cache tags, atomic locks, cache events, and PSR-16 adapters via symfony/cache. fm/cache adds a parallel abstraction that does not compose with container bindings, the Octane lifecycle, or existing cache event listeners. For new code, use Illuminate\Support\Facades\Cache or a PSR-16 adapter instead.
- Can I use fm/cache for cache tags and targeted invalidation?
- It advertises tag-aware cache grouping for targeted invalidation, but the implementation is unmaintained and untested on modern runtimes. Laravel's native cache tags and PSR-6 or PSR-16 solutions are safer and supported alternatives. Treat fm/cache tag behavior as legacy-only if you must retain it.
- What should I do if my legacy app already depends on fm/cache?
- Hide it behind an internal CacheGateway interface so the implementation is swappable without touching call sites. Timebox a spike to confirm autoloading, container binding, and a read/write round-trip under the target runtime. Ship only to the legacy path, never to new code, and schedule replacement within one to two sprints with an owner and a date.
- Does fm/cache work on PHP 8?
- Not out of the box. It uses PHP 5.3 to 5.5 idioms such as each(), curly-brace array access, and untyped signatures that will fatal on PHP 8+. You would need to fork and patch typed signatures, removed functions, string-offset syntax, and illuminate/* constraints, plus verify PSR-4 autoloading.
- How do I test a Laravel package like fm/cache outside Laravel?
- The package description claims a framework-agnostic core for easy testing outside Laravel, but there is no visible test suite or CI in the repository. Any testing would be your own, likely a PHPUnit harness around the core classes. For new work, test against Laravel's cache contracts instead.
- What are the best alternatives to fm/cache?
- Use Illuminate\Support\Facades\Cache for Laravel-native caching, plus symfony/cache for PSR-16 framework-agnostic code. If you need a drop-in API shim, evaluate treehouselabs/cache first, but it is also archived and unsupported. If your real need is a backend driver, choose Redis, Memcached, or the database cache directly.