current = new stdClass(); } else { $this->current = json_decode(file_get_contents($path)); } // Add the DB object under the settings if it doesn't already exist if( ! isset($this->current->dbs)) { $this->current->dbs = new stdClass(); } } /** * Output the settings on destruct */ public function __destruct() { file_put_contents(SETTINGS_DIR . '/settings.json', json_encode($this->current)); } // -------------------------------------------------------------------------- /** * Magic method to simplify isset checking for config options * * @param string $key * @return $mixed */ public function __get($key) { return (isset($this->current->{$key}) && $key != "dbs") ? $this->current->{$key} : NULL; } // -------------------------------------------------------------------------- /** * Magic method to simplify setting config options * * @param string $key * @param mixed $val */ public function __set($key, $val) { //Don't allow direct db config changes if($key == "dbs") { return FALSE; } $this->current->{$key} = $val; } // -------------------------------------------------------------------------- /** * Add a database connection * * @param string $name * @param array $params */ public function add_db($name, $params) { if( ! isset($this->current->dbs->{$name})) { $this->current->dbs->{$name} = array(); $this->current->dbs->{$name} = $params; } else { return FALSE; } } // -------------------------------------------------------------------------- /** * Edit a database connection * * @param string $name * @param array $params */ public function edit_db($name, $params) { if(isset($this->current->dbs->{$name})) { $this->current->dbs->{$name} = $params; } else { return FALSE; } } // -------------------------------------------------------------------------- /** * Remove a database connection * * @param string $name */ public function remove_db($name) { if( ! isset($this->current->dbs->{$name})) { return FALSE; } // Remove the db name from the object unset($this->current->dbs->{$name}); } // -------------------------------------------------------------------------- /** * Retreive all db connections * * @return array */ public function get_dbs() { return $this->current->dbs; } // -------------------------------------------------------------------------- /** * Retreive a specific database connection * * @param string $name * @return object */ public function get_db($name) { return (isset($this->current->dbs->{$name})) ? $this->current->dbs->{$name} : FALSE; } } // End of settings.php