55 lines
1.4 KiB
PHP
55 lines
1.4 KiB
PHP
<?
|
|
class RedisConnection
|
|
{
|
|
private static $instance = null;
|
|
private $redis;
|
|
|
|
private function __construct()
|
|
{
|
|
global $config;
|
|
|
|
$this->redis = new \Redis();
|
|
|
|
try
|
|
{
|
|
// Próba połączenia z serwerem Redis
|
|
if (!$this->redis->connect($config['redis']['host'], $config['redis']['port']))
|
|
{
|
|
// Logowanie błędu lub inna forma obsługi, zamiast rzucania wyjątku
|
|
error_log("Nie udało się połączyć z serwerem Redis.");
|
|
$this->redis = null; // Ustawienie na null, aby uniknąć błędów w przyszłości
|
|
return; // Wyjście z konstruktora, nie kontynuując autoryzacji
|
|
}
|
|
|
|
// Próba autoryzacji
|
|
if (!$this->redis->auth($config['redis']['password']))
|
|
{
|
|
error_log("Autoryzacja do serwera Redis nie powiodła się.");
|
|
$this->redis = null; // Ustawienie na null, aby uniknąć błędów w przyszłości
|
|
return; // Wyjście z konstruktora
|
|
}
|
|
}
|
|
catch (\Exception $e)
|
|
{
|
|
// Obsługa innych potencjalnych wyjątków
|
|
error_log("Błąd podczas połączenia z Redis: " . $e->getMessage());
|
|
$this->redis = null; // Ustawienie na null, aby uniknąć błędów w przyszłości
|
|
}
|
|
}
|
|
|
|
|
|
public static function getInstance()
|
|
{
|
|
if (self::$instance === null)
|
|
{
|
|
self::$instance = new self();
|
|
}
|
|
return self::$instance;
|
|
}
|
|
|
|
public function getConnection()
|
|
{
|
|
return $this->redis;
|
|
}
|
|
}
|