yiisoft/yii2-redis
Yii2 Redis extension providing a Redis connection plus Cache, Session, and Mutex handlers, and a Redis-backed ActiveRecord for storing and querying structured data. Requires Redis 2.6.12+ and PHP 7.4+ (best on PHP 8).
Illuminate\Cache\RedisStore), session management, and ActiveRecord-like data access (though Laravel uses Eloquent). Redis-backed sessions and caching are common in Laravel, but the package’s Yii2-specific abstractions (e.g., yii\redis\ActiveRecord) require replacement.predis, phpredis) and packages like spatie/laravel-redis-cache or laravel-session already solve these use cases natively. This package offers no unique value for Laravel.yii\base\Application and yii\base\Component classes, making direct integration impossible without a wrapper layer.RedisStore (already supported).laravel-session or predis-backed sessions.spatie/laravel-redis-query-builder for limited use cases).Yii::createObject()) and service locator pattern clash with Laravel’s container (Illuminate\Container). Requires a custom facade or proxy layer.yii\base\Event) with Laravel’s events.Redis facade.spatie/laravel-redis-query-builder suffice, or are Yii2’s ActiveRecord methods (e.g., findAllByAttributes()) uniquely required?phpredis or predis? Laravel’s Redis facade requires explicit driver configuration.Jenssegers\Agent or native serialization; conflicts may arise.config/cache.php → RedisStore (no package needed).config/session.php → driver: 'redis' (uses predis/phpredis).spatie/laravel-redis-query-builder.| Use Case | Current Laravel Solution | yiisoft/yii2-redis Alternative | Migration Steps |
|---|---|---|---|
| Caching | Cache::store('redis')->put() |
Yii::$app->cache->set() |
Replace calls; no code change if using Laravel’s RedisStore. |
| Sessions | Session::driver('redis') |
Yii::$app->session->open() |
Rewrite session logic to use Laravel’s session middleware. |
| ActiveRecord | Eloquent (Model::where()) |
yii\redis\ActiveRecord |
Build custom Eloquent models or use spatie/laravel-redis-query-builder. |
| Pub/Sub | Laravel Events + Redis channels | Yii::$redis->publish() |
Replace with Laravel’s Redis::publish() or laravel-websockets. |
yiisoft/yii2 (v2.0.35) conflicts with Laravel’s illuminate/support.predis vs. phpredis): Ensure the package’s Redis client matches Laravel’s config.yiisoft/yii2-redis usage. Prioritize features (e.g., caching vs. ActiveRecord).RedisYii::activeRecord()).// app/Facades/RedisYii.php
namespace App\Facades;
use Illuminate\Support\Facades\Facade;
class RedisYii extends Facade {
protected static function getFacadeAccessor() { return 'redis.yii'; }
}
spatie/laravel-redis-query-builder.predis CVE-2021-32648) must be patched manually.yii\base\ErrorException) differ from Laravel’s. Stack traces may be unreadable.yii\redis\Exception in Laravel logs requires familiarity with Yii2’s exception hierarchy.Application class makes it hard to replace components later.yii\redis\Queue would need equivalent configuration.| Scenario | Impact | Mitigation |
|---|---|---|
| Redis Connection Drop | Yii2’s Yii::$app->cache fails silently; Laravel’s |
How can I help you explore Laravel packages today?