Added a a helper method to the runtime that merges env specific options with global ones

This commit is contained in:
Yanick Witschi 2017-02-01 15:23:31 +01:00
parent b7ecc97523
commit dc48f19b26
5 changed files with 25 additions and 16 deletions

View file

@ -229,6 +229,27 @@ class Runtime
return $default;
}
/**
* Shortcut to get the the configuration option for a specific environment and merge it with
* the global one (environment specific overrides the global one if present).
*
* @param $key
* @param null $defaultEnv
* @param null $defaultConfig
*
* @return array
*/
public function getMergedEnvAndConfigOption($key, $defaultEnv = null, $defaultConfig = null)
{
$userGlobalOptions = $this->getConfigOption($key, $defaultConfig);
$userEnvOptions = $this->getEnvOption($key, $defaultEnv);
return array_merge(
(is_array($userGlobalOptions) ? $userGlobalOptions : []),
(is_array($userEnvOptions) ? $userEnvOptions : [])
);
}
/**
* Overwrites an Environment Configuration Option
*

View file

@ -43,12 +43,9 @@ class AsseticDumpTask extends AbstractTask
protected function getOptions()
{
$userGlobalOptions = $this->runtime->getConfigOption('symfony', []);
$userEnvOptions = $this->runtime->getEnvOption('symfony', []);
$options = array_merge(
['console' => 'bin/console', 'env' => 'dev', 'flags' => ''],
(is_array($userGlobalOptions) ? $userGlobalOptions : []),
(is_array($userEnvOptions) ? $userEnvOptions : []),
$this->runtime->getMergedEnvAndConfigOption('symfony', [], []),
$this->options
);

View file

@ -43,12 +43,9 @@ class AssetsInstallTask extends AbstractTask
protected function getOptions()
{
$userGlobalOptions = $this->runtime->getConfigOption('symfony', []);
$userEnvOptions = $this->runtime->getEnvOption('symfony', []);
$options = array_merge(
['console' => 'bin/console', 'env' => 'dev', 'target' => 'web', 'flags' => '--symlink --relative'],
(is_array($userGlobalOptions) ? $userGlobalOptions : []),
(is_array($userEnvOptions) ? $userEnvOptions : []),
$this->runtime->getMergedEnvAndConfigOption('symfony', [], []),
$this->options
);

View file

@ -43,12 +43,9 @@ class CacheClearTask extends AbstractTask
protected function getOptions()
{
$userGlobalOptions = $this->runtime->getConfigOption('symfony', []);
$userEnvOptions = $this->runtime->getEnvOption('symfony', []);
$options = array_merge(
['console' => 'bin/console', 'env' => 'dev', 'flags' => ''],
(is_array($userGlobalOptions) ? $userGlobalOptions : []),
(is_array($userEnvOptions) ? $userEnvOptions : []),
$this->runtime->getMergedEnvAndConfigOption('symfony', [], []),
$this->options
);

View file

@ -43,12 +43,9 @@ class CacheWarmupTask extends AbstractTask
protected function getOptions()
{
$userGlobalOptions = $this->runtime->getConfigOption('symfony', []);
$userEnvOptions = $this->runtime->getEnvOption('symfony', []);
$options = array_merge(
['console' => 'bin/console', 'env' => 'dev', 'flags' => ''],
(is_array($userGlobalOptions) ? $userGlobalOptions : []),
(is_array($userEnvOptions) ? $userEnvOptions : []),
$this->runtime->getMergedEnvAndConfigOption('symfony', [], []),
$this->options
);