*/ // public string $driver = FileHandler::class; public string $driver = RedisHandler::class; /** * -------------------------------------------------------------------------- * Session Cookie Name * -------------------------------------------------------------------------- * * The session cookie name, must contain only [0-9a-z_-] characters */ public string $cookieName = 'ci_session'; /** * -------------------------------------------------------------------------- * Session Expiration * -------------------------------------------------------------------------- * * The number of SECONDS you want the session to last. * Setting to 0 (zero) means expire when the browser is closed. */ public int $expiration = 7200; /** * -------------------------------------------------------------------------- * Session Save Path * -------------------------------------------------------------------------- * * The location to save sessions to and is driver dependent. * * For the 'files' driver, it's a path to a writable directory. * WARNING: Only absolute paths are supported! * * For the 'database' driver, it's a table name. * Please read up the manual for the format with other session drivers. * * IMPORTANT: You are REQUIRED to set a valid save path! * * For Redis: tcp://host:port?database=n&password=xxx */ // public string $savePath = WRITEPATH . 'session'; public string $savePath; public function __construct() { parent::__construct(); // Redis 설정을 환경변수에서 불러오기 if ($this->driver === RedisHandler::class) { // .env의 redis.default.* 설정을 underscore로 읽기 $redisHost = env('redis_default_host', '127.0.0.1'); $redisPort = env('redis_default_port', '6379'); $redisDatabase = env('SESSION_REDIS_DATABASE', '0'); $redisPassword = env('redis_default_password', ''); $this->savePath = sprintf( 'tcp://%s:%s?database=%s', $redisHost, $redisPort, $redisDatabase ); if (!empty($redisPassword)) { $this->savePath .= '&password=' . $redisPassword; } } else { $this->savePath = WRITEPATH . 'session'; } } /** * -------------------------------------------------------------------------- * Session Match IP * -------------------------------------------------------------------------- * * Whether to match the user's IP address when reading the session data. * * WARNING: If you're using the database driver, don't forget to update * your session table's PRIMARY KEY when changing this setting. */ public bool $matchIP = false; /** * -------------------------------------------------------------------------- * Session Time to Update * -------------------------------------------------------------------------- * * How many seconds between CI regenerating the session ID. */ public int $timeToUpdate = 300; /** * -------------------------------------------------------------------------- * Session Regenerate Destroy * -------------------------------------------------------------------------- * * Whether to destroy session data associated with the old session ID * when auto-regenerating the session ID. When set to FALSE, the data * will be later deleted by the garbage collector. */ public bool $regenerateDestroy = false; /** * -------------------------------------------------------------------------- * Session Database Group * -------------------------------------------------------------------------- * * DB Group for the database session. */ public ?string $DBGroup = null; /** * -------------------------------------------------------------------------- * Lock Retry Interval (microseconds) * -------------------------------------------------------------------------- * * This is used for RedisHandler. * * Time (microseconds) to wait if lock cannot be acquired. * The default is 100,000 microseconds (= 0.1 seconds). */ public int $lockRetryInterval = 100_000; /** * -------------------------------------------------------------------------- * Lock Max Retries * -------------------------------------------------------------------------- * * This is used for RedisHandler. * * Maximum number of lock acquisition attempts. * The default is 300 times. That is lock timeout is about 30 (0.1 * 300) * seconds. */ public int $lockMaxRetries = 300; }