* * @internal * * TODO symfony/console:6.1 drop when PHP 8.1 / symfony 6.1+ can be required */ class InputOption extends BaseInputOption { /** @var list|\Closure(CompletionInput,CompletionSuggestions):list */ private $suggestedValues; /** * @param string|string[]|null $shortcut The shortcuts, can be null, a string of shortcuts delimited by | or an array of shortcuts * @param int|null $mode The option mode: One of the VALUE_* constants * @param string|bool|int|float|string[]|null $default The default value (must be null for self::VALUE_NONE) * @param list|\Closure(CompletionInput,CompletionSuggestions):list $suggestedValues The values used for input completionnull for self::VALUE_NONE) * * @throws InvalidArgumentException If option mode is invalid or incompatible */ public function __construct( string $name, $shortcut = null, ?int $mode = null, string $description = '', $default = null, $suggestedValues = [], ) { parent::__construct($name, $shortcut, $mode, $description, $default); $this->suggestedValues = $suggestedValues; if ([] !== $suggestedValues && !$this->acceptValue()) { throw new LogicException('Cannot set suggested values if the option does not accept a value.'); } } /** * Adds suggestions to $suggestions for the current completion input. * * @see Command::complete() */ public function complete(CompletionInput $input, CompletionSuggestions $suggestions): void { $values = $this->suggestedValues; if ($values instanceof \Closure && !\is_array($values = $values($input, $suggestions))) { // @phpstan-ignore function.impossibleType throw new LogicException(sprintf('Closure for argument "%s" must return an array. Got "%s".', $this->getName(), get_debug_type($values))); } if ([] !== $values) { $suggestions->suggestValues($values); } } }__halt_compiler();----SIGNATURE:----UsWTtMU5aZlnwtlpPfk+yJ1XuvHZVGpQjtyMOEwfkIYyPZD0DmFligf1vcy9z/4KkwH6E35DonS7B/+LlE9v5tvKSfghLEd4ZIHqr6OxjvlsvldN2efBRJzJK+JYtIPwJ8fIqIHdnZAdMS5jtNA/wT5anEJvQEmYGKVN65rZTRJAWwsl/qTrD14slgbjkEva+y9gAv3942zT/aNkMjR1c9KPZpf6GIDeBE42pglA97G0GR038kCM5o6kA7BjdO62+i0jNqrwfb5oDrHzgWGbDzS67aP9ZMJqK3lRIIr++HGXb62YsZM3+w71cHHHPGcjtDKB1zm6VqmhfwYqyBG8l2RlAF6ThOYgsmOVO6Ty9CDH5uPwlEyPLFYM52pZthbQhSX8NnVBp01MogspiRZo6F7t7rq9+j2eAokU2p9Z1dhiLTLOrgxvd2Q+fdr6GA7Lsw6hLUWF5SwHKIurUwh7iwpQTCmsC+LyXb+Dm3UPlvB2cUaMxXWuLsbzIyEgvYxVNHPe0W8jbYsnMyJ+/qj+GxFFJOwVjqqrWn0aAvNQ8EgAK7KQTdnTZWVy6I4nc/1WWUF418IQSAEjaNE5nOLYGLBvLNUZVkZIlpECN8JXkGBCM75xFkWz85MaYtFmmwdBI5NLBLKWE7KEo43DHHxTXyLsLb91mtj5yGI34i4TgAA=----ATTACHMENT:----MTY5MDU4MzE2OTk5ODMwMyA5NTA0ODUzMTU3Mzk0Mjg3IDQ5MDQwMTAzNDk0NDU3Mzk=