| <?php |
|
|
| |
| |
| |
| |
| |
| |
|
|
| namespace Piwik\Updater\Migration\Config; |
|
|
| use Piwik\Config; |
| use Piwik\Updater\Migration; |
|
|
| |
| |
| |
| class Set extends Migration |
| { |
| |
| |
| |
| private $section; |
|
|
| |
| |
| |
| private $key; |
|
|
| |
| |
| |
| private $value; |
|
|
|
|
| public function __construct($section, $key, $value) |
| { |
| $this->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(); |
| } |
| } |
|
|