eventName = $this->getName(); $this ->setName('build:settings') ->setDescription('Step 4: build the *.settings.local.php files.') ->setDefinition( new InputDefinition([ new InputArgument(static::ARG_FILE, InputArgument::OPTIONAL, '', static::BUILD_NAME), ]) ) ->setHelp( <<prepare($input, $output, static::BUILD_NAME); if ($err != 0) { $output->writeln($msg); return $err; } foreach ($params['sites'] as $name => $siteParams) { foreach (['build', 'run'] as $stage) { $stageSettings = MergeParamsCommand::mergeDeepArray([ $siteParams['settings']['both'] ?? [], $siteParams['settings'][$stage] ?? [], ]); $stageParams = $siteParams; $stageParams['settings'] = $stageSettings; $context = [ 'extra' => array_diff_key($params, ['instance' => 0, 'sites' => 0]), 'instance' => $params['instance'], 'name' => $name, 'stage' => $stage, 'site' => $stageParams, ]; $destination = "web/sites/${context['name']}/${context['stage']}.settings.local.php"; echo "Building $destination\n"; [$msg, $error] = $this->render($wrapper, $context, $destination); if ($error) { $output->writeln(sprintf("Failed rendering %s settings for site %s: %s", $stage, $name, $msg)); return 5; } } } return 0; } }