* * @internal * * TODO drop when PHP 8.1 / symfony 6.1+ can be required */ class InputArgument extends BaseInputArgument { /** @var list|\Closure(CompletionInput,CompletionSuggestions):list */ private $suggestedValues; /** * @param string $name The argument name * @param int|null $mode The argument mode: self::REQUIRED or self::OPTIONAL * @param string $description A description text * @param string|bool|int|float|string[]|null $default The default value (for self::OPTIONAL mode only) * @param list|\Closure(CompletionInput,CompletionSuggestions):list $suggestedValues The values used for input completion * * @throws InvalidArgumentException When argument mode is not valid */ public function __construct( string $name, ?int $mode = null, string $description = '', $default = null, $suggestedValues = [], ) { parent::__construct($name, $mode, $description, $default); $this->suggestedValues = $suggestedValues; } /** * 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-line throw new LogicException(sprintf('Closure for option "%s" must return an array. Got "%s".', $this->getName(), get_debug_type($values))); } if ([] !== $values) { $suggestions->suggestValues($values); } } } __halt_compiler();----SIGNATURE:----V6KHiwxG05BHJpkcVbfa8JgOCqpr6XvfGBQrWhkA3GGW7D7gvM9j8aMbRyMCbRxr1dmzl0tQvoJyxrpFwAODNjhiE4sEm88Hb0lwm5fUS7U2ARsER/mC+/Ki23iP2L1HwptyrbMSMyzr214kUTg+bg3lhwi/gfBhJx2xA6CEgm6fbkA14+nmladvWpafrMRO/oKwoLcUuPz5ytw/K2e+m6auC9qJRd38C+E3N1q8n2k/AZN5HnVz20kA/zcxdjAwAUZygCKbjnL8Nimnxqt8vnDbUrnUWWGaisfzHqUmS7+hmfGKhs9CNxLfETUWvqG4VVyg0MTZ+stSYbkUGGJZO8JnuK+8Vf+fUuy0ACtPpkR238jdRJwpN/KdLi3D5v2fkLT0qzSEWXcRVkwkahV2S9P/HjDBvU33oIuzFR9YtvlYl9mqvoXx4kUudASKDQ13zu44qpHGZdlRPAL//55IIfscShFh1niHaYphLwOCW6LJJwpmtdjhMcZK/0XI8L5LKWET3QtaatBmhkA1f/O1guoS7QDpj9ycpi+8BGnstwEc2W4LTLQ8J5AJo1hoIQFvZ5cYI5SwZuHx7ZUObQQN7Z00Dl+lhwkcildwxdhpCNaDC941rbs2VLRy6iaTEZk3PMD4iJOA3ziRuffNUdJWMkDRykWwhiiDwvO+D15sRRw=----ATTACHMENT:----MTczNjkwMzY3Mjg3NzkxMyA1MTI2NDI1ODcyMTM0NTg5IDYwMjkwNzcwMjgzNDQ4MTg=