File size: 1,545 Bytes
f8ce8bb | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | <?php
/**
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
namespace Piwik\Updater\Migration\Config;
use Piwik\Config;
use Piwik\Updater\Migration;
/**
* Sets the given configuration to Matomo config value
*/
class Set extends Migration
{
/**
* @var string
*/
private $section;
/**
* @var string
*/
private $key;
/**
* @var scalar|scalar[]
*/
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();
}
}
|