refactor: simplify Redis configuration initialization

- Use RedisConfig::fromEnvironment() in LoggerInitializer
- Remove fallback logic in QueueInitializer, always use connection pool
- Make RedisConfig constructor private
- Clean up Redis connection error message
This commit is contained in:
2025-11-03 00:43:28 +01:00
parent 7a2cb0b63e
commit b070767d0a
4 changed files with 6 additions and 16 deletions

View File

@@ -121,7 +121,7 @@ final readonly class LoggerInitializer
*/
private function createQueue(Environment $env): Queue
{
$redisConfig = new RedisConfig(host: $env->getString(EnvKey::REDIS_HOST, 'redis'), database: 2);
$redisConfig = RedisConfig::fromEnvironment($env);
$redisConnection = new RedisConnection($redisConfig, 'queue');
return new RedisQueue($redisConnection, 'commands');

View File

@@ -32,19 +32,9 @@ final readonly class QueueInitializer
}
// Try to use Redis connection pool if available, otherwise create direct connection
$redisConnection = null;
if ($this->container->has(RedisConnectionPool::class)) {
$pool = $this->container->get(RedisConnectionPool::class);
$redisConnection = $pool->getQueueConnection();
} else {
// Fallback to direct connection creation
$redisConfig = new RedisConfig(
host: 'redis',
port: 6379,
database: 2 // Use DB 2 for queue
);
$redisConnection = new RedisConnection($redisConfig, 'queue');
}
$pool = $this->container->get(RedisConnectionPool::class);
$redisConnection = $pool->getQueueConnection();
return new RedisQueue(
connection: $redisConnection,

View File

@@ -12,7 +12,7 @@ use App\Framework\Config\EnvKey;
*/
final readonly class RedisConfig
{
public function __construct(
private function __construct(
public string $host = 'redis',
public int $port = 6379,
public ?string $password = null,

View File

@@ -112,7 +112,7 @@ final class RedisConnection implements RedisConnectionInterface
$this->connected = false;
throw new RedisConnectionException(
"Failed to connect to Redis ({$this->name}): " . $e->getMessage() . " with Host: {$this->config->host} and Password: {$this->config->password} should be {$_ENV['REDIS_HOST']} and {$_ENV['REDIS_PASSWORD']}",
"Failed to connect to Redis ({$this->name}): " . $e->getMessage() . " with Host: {$this->config->host} and Password: {$this->config->password}",
previous: $e
);
}