Files
flarum-ext-redis-setup/README.md
IanM 77ad7422e7 fix: disable fof/redis settings cache to avoid circular boot dependency (#7)
fof/redis >=1.1 introduces a `settings` service that replaces
SettingsRepositoryInterface with a Redis-backed caching layer.
Enabling it here creates a circular dependency: this extension reads
settings to decide which Redis services to enable, but with the
settings cache active those reads require Redis to already be wired.

Always disable the `settings` service when delegating to fof/redis.
Also fixes a cast-precedence bug in the database env var helpers
where `(int) getenv(...) ? getenv(...) : N` applied the cast to the
ternary condition rather than the result, causing REDIS_DATABASE_*=0
to return the default instead of 0.

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-03 17:29:17 +00:00

2.4 KiB
Raw Blame History

Redis Setup

MIT license Latest Stable Version Total Downloads

A Flarum extension.

Makes it easy to enable/disable Redis features:

  • Cache
  • Queue
  • Sessions

If you are using a local redis setup, you will likely be able to simply use the defaults provided. Any of these can be overridden using environment variables as follows:

REDIS_HOST='127.0.0.1 # Optional, else uses default
REDIS_PORT=6379 # Optional, else uses default
REDIS_PASSWORD=null # Optional, otherwise null
REDIS_DATABASE_CACHE=1 # Optional, else uses default
REDIS_DATABASE_QUEUE=2 # Optional, else uses default
REDIS_DATABASE_SESSION=3 # Optional, else uses default
REDIS_PREFIX='flarum_' # Optional, else uses default

📥 Installation

composer require glowingblue/redis-setup

♻ Updating

composer update glowingblue/redis-setup
php flarum cache:clear

Compatibility with fof/redis

This extension depends on fof/redis and deliberately disables the settings service that fof/redis ≥ 1.1 provides.

fof/redis's settings service replaces Flarum's SettingsRepositoryInterface with a Redis-backed caching layer. However, this extension reads settings (e.g. which Redis services to enable) during its own boot sequence — before Redis is fully wired into the container. Enabling the Redis settings cache here would create a circular dependency: configuring Redis requires reading settings, but reading settings requires Redis.

The settings service from fof/redis is therefore always disabled in this extension's extender. If you want Redis-backed settings caching, configure fof/redis directly in your project's root extend.php instead of using this extension.