* * @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:----KqJo+g5aMH5KfYmK4pT5Zff7FcnKmOdJ+uwz+0oaSQVSIUwqUSDhlL8p/imA64NVahbcTx3wyA5L5uzspjxVAXsRyLQnXWl6ltSegRuGVaBrd6E1NDt2rKbp/HDXisZm1pY+PUJRsUBDfkbHpueVrCS9Q5yZory1HaQMesWkNGUYHEWdgioDARhouCxsPxLrsKv4wnkBOia2S+QWxM88ZlRFzQPZXDxcAO4jaRHGP6tOScRjDxy8UXYAjKpH5e5riVj6E7ObooHHogi6WzZOLs1AnG8LqOeW7yNbqynyWl1U76/CJ1Fz4KyFqSuGIhPxtwOb+YZ8zAGkb2wKajJbeQVN/amHYFBpBgV+v8h15QsaqMIrR5vsRv7wBYm9/nNDPZ1/vEe9DJ5P37DFoEy92s507ohYnxwiPQCJzcQRx1a2zRBpKvNYugMnO0jdUnoUi52vs4iyE4r5zSrnZwSsHpy40zdkK0Z2n4luJhR5tXoz6KZencM3DBiD5W/3kg14eQ3FU9SFiNRj0yV/wuhGO+gKpDHqmmJNPvh9QEaohP/yxtH+8KolPBV7ZV/+tY40UKIx4lkjxDzgne1v769ns6oYUbOz75yBBj7onr/dWpnboRmqf2lZFV6A/N5ouw6+RAN4atnB0TUK8jtyLKweF7FFPngGfIMTnCvIN9rq3Dk=----ATTACHMENT:----MzY4NjkxOTE1NDIzNjQ3NyA0NTExNTI3NTgzMDA2MDY5IDY2NDQ2NzUyMTgwMTgxMjc=