section = $section; $this->key = $key; $this->value = $value; } public function __toString() { $domain = Config::getLocalConfigPath() == Config::getDefaultLocalConfigPath() ? '' : Config::getHostname(); $domainArg = !empty($domain) ? "--matomo-domain=\"$domain\" " : ''; if (is_array($this->value)) { $assignment = sprintf('%s.%s=%s', $this->section, $this->key, json_encode($this->value)); $assignment = str_replace("'", "'\"'\"'", $assignment); return sprintf("./console %sconfig:set '%s'", $domainArg, $assignment); } return sprintf('./console %sconfig:set --section="%s" --key="%s" --value="%s"', $domainArg, $this->section, $this->key, $this->value); } public function exec() { $config = Config::getInstance(); $config->{$this->section}[$this->key] = $this->value; $config->forceSave(); } }