addOption($name, $shortcut, InputOption::VALUE_REQUIRED, $description); } public function get(InputInterface $input, OutputInterface $output): ?Chronos { $value = $input->getOption($this->name); if (empty($value) || ! is_string($value)) { return null; } try { return Chronos::parse($value); } catch (Throwable $e) { $output->writeln(sprintf( '> Ignored provided "%s" since its value "%s" is not a valid date. <', $this->name, $value, )); if ($output->isVeryVerbose()) { $this->command->getApplication()?->renderThrowable($e, $output); } return null; } } }