<?php
namespace Shared\Cache;

class RedisConnection
{
    private static $instance = null;
    private $redis;

    private function __construct()
    {
        global $config;

        $this->redis = new \Redis();

        try {
            if (!$this->redis->connect($config['redis']['host'], $config['redis']['port'])) {
                error_log("Nie udalo sie polaczyc z serwerem Redis.");
                $this->redis = null;
                return;
            }

            if (!$this->redis->auth($config['redis']['password'])) {
                error_log("Autoryzacja do serwera Redis nie powiodla sie.");
                $this->redis = null;
                return;
            }
        } catch (\Exception $e) {
            error_log("Blad podczas polaczenia z Redis: " . $e->getMessage());
            $this->redis = null;
        }
    }

    public static function getInstance()
    {
        if (self::$instance === null) {
            self::$instance = new self();
        }
        return self::$instance;
    }

    public function getConnection()
    {
        return $this->redis;
    }
}
