diff --git a/docs/configuration.md b/docs/configuration.md index e92ffd4..da4f1fd 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -10,7 +10,8 @@ php-redis-om provide a way to use persistent connections with the `RedisClient` ```php // Set the persistent connection to true -$objectManager = new RedisObjectManager(createPersistentConnection: true); +$objectManager = new RedisObjectManager(); +$bjectManager->getRedisClient()->createPersistentConnection(); // Then you can use the ObjectManager normally $objectManager->persist($user); diff --git a/src/Client/PredisClient.php b/src/Client/PredisClient.php index 81dc2a1..c4431f0 100644 --- a/src/Client/PredisClient.php +++ b/src/Client/PredisClient.php @@ -51,7 +51,6 @@ public function createPersistentConnection(?string $host = null, ?int $port = nu 'persistent' => true, 'timeout' => $timeout, ]); - ; } /** diff --git a/src/Om/Persister/AbstractPersister.php b/src/Om/Persister/AbstractPersister.php index 91e96ce..e5c3a50 100644 --- a/src/Om/Persister/AbstractPersister.php +++ b/src/Om/Persister/AbstractPersister.php @@ -4,6 +4,7 @@ namespace Talleu\RedisOm\Om\Persister; +use Talleu\RedisOm\Client\PredisClient; use Talleu\RedisOm\Client\RedisClient; use Talleu\RedisOm\Client\RedisClientInterface; use Talleu\RedisOm\Om\Key\KeyGenerator; @@ -15,7 +16,7 @@ public function __construct( private ?KeyGenerator $keyGenerator = null, protected ?RedisClientInterface $redis = null ) { - $this->redis = $redis ?? (new RedisClient()); + $this->redis = $redis ?? getenv('REDIS_CLIENT') === 'predis' ? new PredisClient() : new RedisClient(); $this->keyGenerator = $keyGenerator ?? new KeyGenerator(); } diff --git a/src/Om/RedisObjectManager.php b/src/Om/RedisObjectManager.php index d060138..c4e76a7 100644 --- a/src/Om/RedisObjectManager.php +++ b/src/Om/RedisObjectManager.php @@ -4,6 +4,8 @@ namespace Talleu\RedisOm\Om; +use Talleu\RedisOm\Client\PredisClient; +use Talleu\RedisOm\Client\RedisClient; use Talleu\RedisOm\Client\RedisClientInterface; use Talleu\RedisOm\Om\Converters\HashModel\HashObjectConverter; use Talleu\RedisOm\Om\Converters\JsonModel\JsonObjectConverter; @@ -27,8 +29,10 @@ final class RedisObjectManager implements RedisObjectManagerInterface protected ?KeyGenerator $keyGenerator = null; public function __construct( - private readonly ?RedisClientInterface $redisClient, + private ?RedisClientInterface $redisClient = null, ) { + $this->redisClient = getenv('REDIS_CLIENT') === 'predis' ? new PredisClient() : new RedisClient(); + $this->keyGenerator = new KeyGenerator(); } @@ -213,5 +217,8 @@ public function dropIndex(object $object, string $fqcn = null): void $this->redisClient->dropIndex($object->prefix ?? $fqcn); } - + public function getRedisClient(): ?RedisClientInterface + { + return $this->redisClient; + } }