/** * Maps arguments delivered by the request object to the local controller arguments. * * @return void */ protected function mapRequestArgumentsToControllerArguments() { /** @var Argument $argument */ foreach ($this->arguments as $argument) { $argumentName = $argument->getName(); if ($this->request->hasArgument($argumentName)) { $argument->setValue($this->request->getArgument($argumentName)); continue; } if (!$argument->isRequired()) { continue; } $argumentValue = null; $commandArgumentDefinition = $this->objectManager->get(CommandArgumentDefinition::class, $argumentName, true, null); while ($argumentValue === null) { $argumentValue = $this->output->ask(sprintf('<comment>Please specify the required argument "%s":</comment> ', $commandArgumentDefinition->getDashedName())); } $argument->setValue($argumentValue); } }