* * @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:----ZDsOpGVG7zG4YQC+pkPFhS9gyFMl3tAbnZO5+eVjJXoBjJEAkA0Yjx4sm6+8rHrl9ceXh1Q8BnMvSXF5WKNpiqKdk4iIgq0DtP5/CU3xCkDp/AsovW8a6IwspKs8yuAjNky8iLpE104DrwriOpBqXC4zdcOwo/HM9eLQNHRml+6moO0oD5BBGjz3PXMWka2Q8puujqpWcv+mLR1fi1LhhpA8YgIcTuH11X/9P7oSUIB048T26H1KEzfsT3QSHsB062tzTP4IWfcXwT67Ejb44I49tINrZPfZ4HLEFXSmWTE/LkwajYnlSfp0RAk2V5jGojD+qcDxeFIYj9Zopep+i4whhW8AGhv2x4YFBIH4WJC3O7EZYp/0R9jmygi4V66dgiMaCyqZa0+ChU8BK8FLtJo6Gixxw4ORBDTEBVaeUQGIGp0kYDkUujvLjBKKW0dse/tFvDckmyW1k85G6yrG7SAACWEYCCPABZ+Id3klIj8bF5QTKRTZosdK7e0yeTaARLZZQsB46zR24Q0TBBOFp0ioLRbXXQMJSZa1szeyX6Cqee/PAq7xUOA1D7Rsbh3yhKSBzRRvHTyWGPgJzcloTQawr/HvO9T6Sucn0Af5dhsT4qXiiXDf5iPhA0moTHJxIV1lbHhtPH5gSGvGWTtCllvfoMhBGwy2ZvBgX0W+iLg=----ATTACHMENT:----MjY1NDIzODgzNTU0Mjg5NyAzMDUyMzE4MDU0NjYyMTE2IDE4ODU3NzE5NTI5MTg2OTg=