data; } public function fromArray($a) { $this->data = $a; } public function __construct() { $this->path = dirname(__DIR__) . "/config.json"; } public function read(): void { $this->data = @json_decode(@file_get_contents($this->path), true); if ($this->data == null) { throw new RuntimeException("Failed to read or parse config file"); } } public function save(): void { file_put_contents($this->path, json_encode($this->data,JSON_PRETTY_PRINT)); } private mixed $data = []; public function offsetExists(mixed $offset): bool { return isset($this->data[$offset]); } public function offsetGet(mixed $offset): mixed { return $this->data[$offset]; } public function offsetSet(mixed $offset, mixed $value): void { $this->data[$offset] = $value; } public function offsetUnset(mixed $offset): void { unset($this->data[$offset]); } }