Skip to content

Conversation

@Iandenh
Copy link

This pull request introduces the ability to create a PRedis instance using an already initialized Predis\Client. A new static method createWithClient has been added to facilitate this functionality.

Use Case
If a user already has a configured Predis\Client instance, they can now pass it directly to the PRedis class. This avoids the need to reconfigure the client or duplicate configuration logic. For example, I want to pass through enqueue because I have a predis client configured with Sentinel.

Changes

  1. Added a check in the constructor to accept a client key in the configuration array. If provided, it validates that the value is an instance of Predis\Client and uses it directly.
  2. Added a static method createWithClient(Client $client): self to simplify the creation of a PRedis instance with an existing Predis\Client.

Example Usage

usePredis\Client; useEnqueue\Redis\PRedis; $predisClient = newClient(['host' => '127.0.0.1', 'port' => 6379]); $predis = PRedis::createWithClient($predisClient); // Pass the PRedis instance to the RedisConnectionFactory$connectionFactory = newRedisConnectionFactory($predis); // Get the RedisContext$redisContext = $connectionFactory->createContext();

@IandenhIandenhforce-pushed the create-predis-with-client branch from 0335653 to 9f502fcCompareMay 20, 2025 04:47
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Iandenh