* * @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:----TnqZ8Jlk82k3ZODSa2SLfa9uoZ1BffyO1Zq81+n6l0v6sH5lhaSU2Em57XqN/YWKqwIk63pfTAhNnWux3TwZl3SNKqoCcpH2ppgtoThXWW0FaEOjJuu0G8Kt9QSaJ3zsX8zKEqzitRK8nfADrSPZz29Vjqly38RJZHb6xmbcYbYOc/YPcp3OyG1OmBYyFSow7+EodKeIfQOloTHe1zXfZNi0iqro47FzNjWR9YT/V91zbQoku7gb5NcL+HsJpiQL6I+ZhyQrPczpT4QcU4qmz4btEzlMrod3mV+SqhLQU+duxJjaOkrqtgbVI6aD8C6sYh/bIvqiEMH69vqYKIb5UDceopKMkPZZ4GVIHxuRl8h0BSsKYbGz/FUKe5eg38ydAv0dyvbGpDjpsPzfnzI+QW1VGPgTqEcf7BLlO7Qz2IaDMXSkpaMJesZzlk0cnWvHEJUTUU2o7Eag/7D/j2QpywSyjzPaB1hXqPEDlBkeWiRnH67XOiU9b2LHak08KZXqEkfuicyuK0j4/29M4oEOqJoDcLHZKrNLzxboxs6WYJA0/0Q1QQQ16v1wwHVIu0G1t0md6EGxxTxnRsRrRpx1nNOBVV1y3YZJMTuOWnh4HzRzimu3Bn0rp5AvWtFXvDVMtD57IdEUX3cP3KXDsGvNtqUzZeyRShZxwWlxhpzwH2M=----ATTACHMENT:----NTkxOTY3Nzc5NjQzMjQ2MyA1MjUwMjQ1OTkzODQ0NjE0IDg4NTY3MzUwMDA2NzE0NDE=