name: Input class_comment: null dependencies: - name: InvalidArgumentException type: class source: Symfony\Component\Console\Exception\InvalidArgumentException - name: RuntimeException type: class source: Symfony\Component\Console\Exception\RuntimeException properties: - name: stream visibility: protected comment: '# * Input is the base class for all concrete Input classes. # * # * Three concrete classes are provided by default: # * # * * `ArgvInput`: The input comes from the CLI arguments (argv) # * * `StringInput`: The input is provided as a string # * * `ArrayInput`: The input is provided as an array # * # * @author Fabien Potencier # */ # abstract class Input implements InputInterface, StreamableInputInterface # { # protected InputDefinition $definition; # /** @var resource' methods: - name: escapeToken visibility: public parameters: - name: token comment: "# * Input is the base class for all concrete Input classes.\n# *\n# *\ \ Three concrete classes are provided by default:\n# *\n# * * `ArgvInput`: The\ \ input comes from the CLI arguments (argv)\n# * * `StringInput`: The input is\ \ provided as a string\n# * * `ArrayInput`: The input is provided as an array\n\ # *\n# * @author Fabien Potencier \n# */\n# abstract class\ \ Input implements InputInterface, StreamableInputInterface\n# {\n# protected\ \ InputDefinition $definition;\n# /** @var resource */\n# protected $stream;\n\ # protected array $options = [];\n# protected array $arguments = [];\n# protected\ \ bool $interactive = true;\n# \n# public function __construct(?InputDefinition\ \ $definition = null)\n# {\n# if (null === $definition) {\n# $this->definition\ \ = new InputDefinition();\n# } else {\n# $this->bind($definition);\n# $this->validate();\n\ # }\n# }\n# \n# public function bind(InputDefinition $definition): void\n# {\n\ # $this->arguments = [];\n# $this->options = [];\n# $this->definition = $definition;\n\ # \n# $this->parse();\n# }\n# \n# /**\n# * Processes command line arguments.\n\ # */\n# abstract protected function parse(): void;\n# \n# public function validate():\ \ void\n# {\n# $definition = $this->definition;\n# $givenArguments = $this->arguments;\n\ # \n# $missingArguments = array_filter(array_keys($definition->getArguments()),\ \ fn ($argument) => !\\array_key_exists($argument, $givenArguments) && $definition->getArgument($argument)->isRequired());\n\ # \n# if (\\count($missingArguments) > 0) {\n# throw new RuntimeException(\\sprintf('Not\ \ enough arguments (missing: \"%s\").', implode(', ', $missingArguments)));\n\ # }\n# }\n# \n# public function isInteractive(): bool\n# {\n# return $this->interactive;\n\ # }\n# \n# public function setInteractive(bool $interactive): void\n# {\n# $this->interactive\ \ = $interactive;\n# }\n# \n# public function getArguments(): array\n# {\n# return\ \ array_merge($this->definition->getArgumentDefaults(), $this->arguments);\n#\ \ }\n# \n# public function getArgument(string $name): mixed\n# {\n# if (!$this->definition->hasArgument($name))\ \ {\n# throw new InvalidArgumentException(\\sprintf('The \"%s\" argument does\ \ not exist.', $name));\n# }\n# \n# return $this->arguments[$name] ?? $this->definition->getArgument($name)->getDefault();\n\ # }\n# \n# public function setArgument(string $name, mixed $value): void\n# {\n\ # if (!$this->definition->hasArgument($name)) {\n# throw new InvalidArgumentException(\\\ sprintf('The \"%s\" argument does not exist.', $name));\n# }\n# \n# $this->arguments[$name]\ \ = $value;\n# }\n# \n# public function hasArgument(string $name): bool\n# {\n\ # return $this->definition->hasArgument($name);\n# }\n# \n# public function getOptions():\ \ array\n# {\n# return array_merge($this->definition->getOptionDefaults(), $this->options);\n\ # }\n# \n# public function getOption(string $name): mixed\n# {\n# if ($this->definition->hasNegation($name))\ \ {\n# if (null === $value = $this->getOption($this->definition->negationToName($name)))\ \ {\n# return $value;\n# }\n# \n# return !$value;\n# }\n# \n# if (!$this->definition->hasOption($name))\ \ {\n# throw new InvalidArgumentException(\\sprintf('The \"%s\" option does not\ \ exist.', $name));\n# }\n# \n# return \\array_key_exists($name, $this->options)\ \ ? $this->options[$name] : $this->definition->getOption($name)->getDefault();\n\ # }\n# \n# public function setOption(string $name, mixed $value): void\n# {\n\ # if ($this->definition->hasNegation($name)) {\n# $this->options[$this->definition->negationToName($name)]\ \ = !$value;\n# \n# return;\n# } elseif (!$this->definition->hasOption($name))\ \ {\n# throw new InvalidArgumentException(\\sprintf('The \"%s\" option does not\ \ exist.', $name));\n# }\n# \n# $this->options[$name] = $value;\n# }\n# \n# public\ \ function hasOption(string $name): bool\n# {\n# return $this->definition->hasOption($name)\ \ || $this->definition->hasNegation($name);\n# }\n# \n# /**\n# * Escapes a token\ \ through escapeshellarg if it contains unsafe chars." - name: setStream visibility: public parameters: - name: stream comment: '# * @param resource $stream' - name: getStream visibility: public parameters: [] comment: '# * @return resource' traits: - Symfony\Component\Console\Exception\InvalidArgumentException - Symfony\Component\Console\Exception\RuntimeException interfaces: - InputInterface