549 lines
14 KiB
YAML
549 lines
14 KiB
YAML
name: Command
|
|
class_comment: '# * Base class for all commands.
|
|
|
|
# *
|
|
|
|
# * @author Fabien Potencier <fabien@symfony.com>'
|
|
dependencies:
|
|
- name: Application
|
|
type: class
|
|
source: Symfony\Component\Console\Application
|
|
- name: AsCommand
|
|
type: class
|
|
source: Symfony\Component\Console\Attribute\AsCommand
|
|
- name: CompletionInput
|
|
type: class
|
|
source: Symfony\Component\Console\Completion\CompletionInput
|
|
- name: CompletionSuggestions
|
|
type: class
|
|
source: Symfony\Component\Console\Completion\CompletionSuggestions
|
|
- name: Suggestion
|
|
type: class
|
|
source: Symfony\Component\Console\Completion\Suggestion
|
|
- name: ExceptionInterface
|
|
type: class
|
|
source: Symfony\Component\Console\Exception\ExceptionInterface
|
|
- name: InvalidArgumentException
|
|
type: class
|
|
source: Symfony\Component\Console\Exception\InvalidArgumentException
|
|
- name: LogicException
|
|
type: class
|
|
source: Symfony\Component\Console\Exception\LogicException
|
|
- name: HelperInterface
|
|
type: class
|
|
source: Symfony\Component\Console\Helper\HelperInterface
|
|
- name: HelperSet
|
|
type: class
|
|
source: Symfony\Component\Console\Helper\HelperSet
|
|
- name: InputArgument
|
|
type: class
|
|
source: Symfony\Component\Console\Input\InputArgument
|
|
- name: InputDefinition
|
|
type: class
|
|
source: Symfony\Component\Console\Input\InputDefinition
|
|
- name: InputInterface
|
|
type: class
|
|
source: Symfony\Component\Console\Input\InputInterface
|
|
- name: InputOption
|
|
type: class
|
|
source: Symfony\Component\Console\Input\InputOption
|
|
- name: OutputInterface
|
|
type: class
|
|
source: Symfony\Component\Console\Output\OutputInterface
|
|
properties: []
|
|
methods:
|
|
- name: __construct
|
|
visibility: public
|
|
parameters:
|
|
- name: name
|
|
default: 'null'
|
|
comment: "# * Base class for all commands.\n# *\n# * @author Fabien Potencier <fabien@symfony.com>\n\
|
|
# */\n# class Command\n# {\n# // see https://tldp.org/LDP/abs/html/exitcodes.html\n\
|
|
# public const SUCCESS = 0;\n# public const FAILURE = 1;\n# public const INVALID\
|
|
\ = 2;\n# \n# private ?Application $application = null;\n# private ?string $name\
|
|
\ = null;\n# private ?string $processTitle = null;\n# private array $aliases =\
|
|
\ [];\n# private InputDefinition $definition;\n# private bool $hidden = false;\n\
|
|
# private string $help = '';\n# private string $description = '';\n# private ?InputDefinition\
|
|
\ $fullDefinition = null;\n# private bool $ignoreValidationErrors = false;\n#\
|
|
\ private ?\\Closure $code = null;\n# private array $synopsis = [];\n# private\
|
|
\ array $usages = [];\n# private ?HelperSet $helperSet = null;\n# \n# public static\
|
|
\ function getDefaultName(): ?string\n# {\n# if ($attribute = (new \\ReflectionClass(static::class))->getAttributes(AsCommand::class))\
|
|
\ {\n# return $attribute[0]->newInstance()->name;\n# }\n# \n# return null;\n#\
|
|
\ }\n# \n# public static function getDefaultDescription(): ?string\n# {\n# if\
|
|
\ ($attribute = (new \\ReflectionClass(static::class))->getAttributes(AsCommand::class))\
|
|
\ {\n# return $attribute[0]->newInstance()->description;\n# }\n# \n# return null;\n\
|
|
# }\n# \n# /**\n# * @param string|null $name The name of the command; passing\
|
|
\ null means it must be set in configure()\n# *\n# * @throws LogicException When\
|
|
\ the command name is empty"
|
|
- name: ignoreValidationErrors
|
|
visibility: public
|
|
parameters: []
|
|
comment: '# * Ignores validation errors.
|
|
|
|
# *
|
|
|
|
# * This is mainly useful for the help command.'
|
|
- name: setApplication
|
|
visibility: public
|
|
parameters:
|
|
- name: application
|
|
comment: null
|
|
- name: setHelperSet
|
|
visibility: public
|
|
parameters:
|
|
- name: helperSet
|
|
comment: null
|
|
- name: getHelperSet
|
|
visibility: public
|
|
parameters: []
|
|
comment: '# * Gets the helper set.'
|
|
- name: getApplication
|
|
visibility: public
|
|
parameters: []
|
|
comment: '# * Gets the application instance for this command.'
|
|
- name: isEnabled
|
|
visibility: public
|
|
parameters: []
|
|
comment: '# * Checks whether the command is enabled or not in the current environment.
|
|
|
|
# *
|
|
|
|
# * Override this to check for x or y and return false if the command cannot
|
|
|
|
# * run properly under the current conditions.'
|
|
- name: configure
|
|
visibility: protected
|
|
parameters: []
|
|
comment: '# * Configures the current command.
|
|
|
|
# *
|
|
|
|
# * @return void'
|
|
- name: execute
|
|
visibility: protected
|
|
parameters:
|
|
- name: input
|
|
- name: output
|
|
comment: '# * Executes the current command.
|
|
|
|
# *
|
|
|
|
# * This method is not abstract because you can use this class
|
|
|
|
# * as a concrete class. In this case, instead of defining the
|
|
|
|
# * execute() method, you set the code to execute by passing
|
|
|
|
# * a Closure to the setCode() method.
|
|
|
|
# *
|
|
|
|
# * @return int 0 if everything went fine, or an exit code
|
|
|
|
# *
|
|
|
|
# * @throws LogicException When this abstract method is not implemented
|
|
|
|
# *
|
|
|
|
# * @see setCode()'
|
|
- name: interact
|
|
visibility: protected
|
|
parameters:
|
|
- name: input
|
|
- name: output
|
|
comment: '# * Interacts with the user.
|
|
|
|
# *
|
|
|
|
# * This method is executed before the InputDefinition is validated.
|
|
|
|
# * This means that this is the only place where the command can
|
|
|
|
# * interactively ask for values of missing required arguments.
|
|
|
|
# *
|
|
|
|
# * @return void'
|
|
- name: initialize
|
|
visibility: protected
|
|
parameters:
|
|
- name: input
|
|
- name: output
|
|
comment: '# * Initializes the command after the input has been bound and before
|
|
the input
|
|
|
|
# * is validated.
|
|
|
|
# *
|
|
|
|
# * This is mainly useful when a lot of commands extends one main command
|
|
|
|
# * where some things need to be initialized based on the input arguments and
|
|
options.
|
|
|
|
# *
|
|
|
|
# * @see InputInterface::bind()
|
|
|
|
# * @see InputInterface::validate()
|
|
|
|
# *
|
|
|
|
# * @return void'
|
|
- name: run
|
|
visibility: public
|
|
parameters:
|
|
- name: input
|
|
- name: output
|
|
comment: '# * Runs the command.
|
|
|
|
# *
|
|
|
|
# * The code to execute is either defined directly with the
|
|
|
|
# * setCode() method or by overriding the execute() method
|
|
|
|
# * in a sub-class.
|
|
|
|
# *
|
|
|
|
# * @return int The command exit code
|
|
|
|
# *
|
|
|
|
# * @throws ExceptionInterface When input binding fails. Bypass this by calling
|
|
{@link ignoreValidationErrors()}.
|
|
|
|
# *
|
|
|
|
# * @see setCode()
|
|
|
|
# * @see execute()'
|
|
- name: complete
|
|
visibility: public
|
|
parameters:
|
|
- name: input
|
|
- name: suggestions
|
|
comment: '# * Supplies suggestions when resolving possible completion options for
|
|
input (e.g. option or argument).'
|
|
- name: setCode
|
|
visibility: public
|
|
parameters:
|
|
- name: code
|
|
comment: '# * Sets the code to execute when running this command.
|
|
|
|
# *
|
|
|
|
# * If this method is used, it overrides the code defined
|
|
|
|
# * in the execute() method.
|
|
|
|
# *
|
|
|
|
# * @param callable $code A callable(InputInterface $input, OutputInterface $output)
|
|
|
|
# *
|
|
|
|
# * @return $this
|
|
|
|
# *
|
|
|
|
# * @throws InvalidArgumentException
|
|
|
|
# *
|
|
|
|
# * @see execute()'
|
|
- name: mergeApplicationDefinition
|
|
visibility: public
|
|
parameters:
|
|
- name: mergeArgs
|
|
default: 'true'
|
|
comment: '# * Merges the application definition with the command definition.
|
|
|
|
# *
|
|
|
|
# * This method is not part of public API and should not be used directly.
|
|
|
|
# *
|
|
|
|
# * @param bool $mergeArgs Whether to merge or not the Application definition
|
|
arguments to Command definition arguments
|
|
|
|
# *
|
|
|
|
# * @internal'
|
|
- name: setDefinition
|
|
visibility: public
|
|
parameters:
|
|
- name: definition
|
|
comment: '# * Sets an array of argument and option instances.
|
|
|
|
# *
|
|
|
|
# * @return $this'
|
|
- name: getDefinition
|
|
visibility: public
|
|
parameters: []
|
|
comment: '# * Gets the InputDefinition attached to this Command.'
|
|
- name: getNativeDefinition
|
|
visibility: public
|
|
parameters: []
|
|
comment: '# * Gets the InputDefinition to be used to create representations of this
|
|
Command.
|
|
|
|
# *
|
|
|
|
# * Can be overridden to provide the original command representation when it would
|
|
otherwise
|
|
|
|
# * be changed by merging with the application InputDefinition.
|
|
|
|
# *
|
|
|
|
# * This method is not part of public API and should not be used directly.'
|
|
- name: addArgument
|
|
visibility: public
|
|
parameters:
|
|
- name: name
|
|
- name: mode
|
|
default: 'null'
|
|
- name: description
|
|
default: ''''''
|
|
- name: default
|
|
default: 'null'
|
|
- name: suggestedValues
|
|
default: '[]'
|
|
comment: '# * Adds an argument.
|
|
|
|
# *
|
|
|
|
# * @param $mode The
|
|
argument mode: InputArgument::REQUIRED or InputArgument::OPTIONAL
|
|
|
|
# * @param $default The
|
|
default value (for InputArgument::OPTIONAL mode only)
|
|
|
|
# * @param array|\Closure(CompletionInput,CompletionSuggestions):list<string|Suggestion>
|
|
$suggestedValues The values used for input completion
|
|
|
|
# *
|
|
|
|
# * @return $this
|
|
|
|
# *
|
|
|
|
# * @throws InvalidArgumentException When argument mode is not valid'
|
|
- name: addOption
|
|
visibility: public
|
|
parameters:
|
|
- name: name
|
|
- name: shortcut
|
|
default: 'null'
|
|
- name: mode
|
|
default: 'null'
|
|
- name: description
|
|
default: ''''''
|
|
- name: default
|
|
default: 'null'
|
|
- name: suggestedValues
|
|
default: '[]'
|
|
comment: '# * Adds an option.
|
|
|
|
# *
|
|
|
|
# * @param $shortcut The
|
|
shortcuts, can be null, a string of shortcuts delimited by | or an array of shortcuts
|
|
|
|
# * @param $mode The
|
|
option mode: One of the InputOption::VALUE_* constants
|
|
|
|
# * @param $default The
|
|
default value (must be null for InputOption::VALUE_NONE)
|
|
|
|
# * @param array|\Closure(CompletionInput,CompletionSuggestions):list<string|Suggestion>
|
|
$suggestedValues The values used for input completion
|
|
|
|
# *
|
|
|
|
# * @return $this
|
|
|
|
# *
|
|
|
|
# * @throws InvalidArgumentException If option mode is invalid or incompatible'
|
|
- name: setName
|
|
visibility: public
|
|
parameters:
|
|
- name: name
|
|
comment: '# * Sets the name of the command.
|
|
|
|
# *
|
|
|
|
# * This method can set both the namespace and the name if
|
|
|
|
# * you separate them by a colon (:)
|
|
|
|
# *
|
|
|
|
# * $command->setName(''foo:bar'');
|
|
|
|
# *
|
|
|
|
# * @return $this
|
|
|
|
# *
|
|
|
|
# * @throws InvalidArgumentException When the name is invalid'
|
|
- name: setProcessTitle
|
|
visibility: public
|
|
parameters:
|
|
- name: title
|
|
comment: '# * Sets the process title of the command.
|
|
|
|
# *
|
|
|
|
# * This feature should be used only when creating a long process command,
|
|
|
|
# * like a daemon.
|
|
|
|
# *
|
|
|
|
# * @return $this'
|
|
- name: getName
|
|
visibility: public
|
|
parameters: []
|
|
comment: '# * Returns the command name.'
|
|
- name: setHidden
|
|
visibility: public
|
|
parameters:
|
|
- name: hidden
|
|
default: 'true'
|
|
comment: '# * @param bool $hidden Whether or not the command should be hidden from
|
|
the list of commands
|
|
|
|
# *
|
|
|
|
# * @return $this'
|
|
- name: isHidden
|
|
visibility: public
|
|
parameters: []
|
|
comment: '# * @return bool whether the command should be publicly shown or not'
|
|
- name: setDescription
|
|
visibility: public
|
|
parameters:
|
|
- name: description
|
|
comment: '# * Sets the description for the command.
|
|
|
|
# *
|
|
|
|
# * @return $this'
|
|
- name: getDescription
|
|
visibility: public
|
|
parameters: []
|
|
comment: '# * Returns the description for the command.'
|
|
- name: setHelp
|
|
visibility: public
|
|
parameters:
|
|
- name: help
|
|
comment: '# * Sets the help for the command.
|
|
|
|
# *
|
|
|
|
# * @return $this'
|
|
- name: getHelp
|
|
visibility: public
|
|
parameters: []
|
|
comment: '# * Returns the help for the command.'
|
|
- name: getProcessedHelp
|
|
visibility: public
|
|
parameters: []
|
|
comment: '# * Returns the processed help for the command replacing the %command.name%
|
|
and
|
|
|
|
# * %command.full_name% patterns with the real values dynamically.'
|
|
- name: setAliases
|
|
visibility: public
|
|
parameters:
|
|
- name: aliases
|
|
comment: '# * Sets the aliases for the command.
|
|
|
|
# *
|
|
|
|
# * @param string[] $aliases An array of aliases for the command
|
|
|
|
# *
|
|
|
|
# * @return $this
|
|
|
|
# *
|
|
|
|
# * @throws InvalidArgumentException When an alias is invalid'
|
|
- name: getAliases
|
|
visibility: public
|
|
parameters: []
|
|
comment: '# * Returns the aliases for the command.'
|
|
- name: getSynopsis
|
|
visibility: public
|
|
parameters:
|
|
- name: short
|
|
default: 'false'
|
|
comment: '# * Returns the synopsis for the command.
|
|
|
|
# *
|
|
|
|
# * @param bool $short Whether to show the short version of the synopsis (with
|
|
options folded) or not'
|
|
- name: addUsage
|
|
visibility: public
|
|
parameters:
|
|
- name: usage
|
|
comment: '# * Add a command usage example, it''ll be prefixed with the command name.
|
|
|
|
# *
|
|
|
|
# * @return $this'
|
|
- name: getUsages
|
|
visibility: public
|
|
parameters: []
|
|
comment: '# * Returns alternative usages of the command.'
|
|
- name: getHelper
|
|
visibility: public
|
|
parameters:
|
|
- name: name
|
|
comment: '# * Gets a helper instance by name.
|
|
|
|
# *
|
|
|
|
# * @throws LogicException if no HelperSet is defined
|
|
|
|
# * @throws InvalidArgumentException if the helper is not defined'
|
|
- name: validateName
|
|
visibility: private
|
|
parameters:
|
|
- name: name
|
|
comment: '# * Validates a command name.
|
|
|
|
# *
|
|
|
|
# * It must be non-empty and parts can optionally be separated by ":".
|
|
|
|
# *
|
|
|
|
# * @throws InvalidArgumentException When the name is invalid'
|
|
traits:
|
|
- Symfony\Component\Console\Application
|
|
- Symfony\Component\Console\Attribute\AsCommand
|
|
- Symfony\Component\Console\Completion\CompletionInput
|
|
- Symfony\Component\Console\Completion\CompletionSuggestions
|
|
- Symfony\Component\Console\Completion\Suggestion
|
|
- Symfony\Component\Console\Exception\ExceptionInterface
|
|
- Symfony\Component\Console\Exception\InvalidArgumentException
|
|
- Symfony\Component\Console\Exception\LogicException
|
|
- Symfony\Component\Console\Helper\HelperInterface
|
|
- Symfony\Component\Console\Helper\HelperSet
|
|
- Symfony\Component\Console\Input\InputArgument
|
|
- Symfony\Component\Console\Input\InputDefinition
|
|
- Symfony\Component\Console\Input\InputInterface
|
|
- Symfony\Component\Console\Input\InputOption
|
|
- Symfony\Component\Console\Output\OutputInterface
|
|
interfaces: []
|