Files
shopPRO/autoload/class.RedisConnection.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;
}
}