name = $name; $this->expire = $expire; $this->domain = $domain; $this->secure = $secure; $this->samesite = $samesite; if (isset($_COOKIE[$name])) { $this->data = json_decode($_COOKIE[$name], true) ?: []; } } public function set($key, $value) { $this->data[$key] = $value; $this->save(); } public function get($key) { return $this->data[$key] ?? null; } public function save() { setcookie( $this->name, json_encode($this->data), [ 'expires' => $this->expire, 'path' => '/', 'domain' => $this->domain, 'secure' => $this->secure, 'samesite' => $this->samesite ] ); } }