sonata-project/cache
Deprecated Sonata cache library providing adapters for cache backends and counters. Includes Redis (PRedis) implementations to set/get cached values and increment counters, with simple key arrays and TTL support via Composer install.
set, get, increment).user:{id}:preferences).Cache facade or service container.CacheStore or service provider, but requires additional boilerplate.predis/predis (Redis) or ext-memcached (Memcached), which may not be pre-configured in all Laravel deployments.json_encode($keys)) into a single string.Log facade, reducing integration effort for debugging.Log facade.CacheStore to integrate Sonata’s adapter with Laravel’s cache system:
// app/Providers/AppServiceProvider.php
use Sonata\Cache\Adapter\Cache\PRedisCache;
use Illuminate\Support\Facades\Cache;
public function register()
{
Cache::extend('sonata_redis', function ($app) {
$redis = new \Predis\Client([
'host' => config('cache.redis.host'),
'port' => config('cache.redis.port'),
'database' => config('cache.redis.database'),
]);
return new PRedisCache($redis);
});
}
composer.json:
composer require sonata-project/cache
config/cache.php.// app/Facades/Counter.php
namespace App\Facades;
use Illuminate\Support\Facades\Facade;
class Counter extends Facade
{
protected static function getFacadeAccessor()
{
return 'sonata.counter';
}
}
// app/Providers/AppServiceProvider.php
use Sonata\Cache\Adapter\Counter\PRedisCounter;
public function register()
{
$this->app->singleton('sonata.counter', function ($app) {
return new PRedisCounter([
'host' => config('cache.redis.host'),
'port' => config('cache.redis.port'),
]);
});
}
sha1(serialize($keys))).Cache::increment() with a lock).How can I help you explore Laravel packages today?