HasParameters.php
TLDR
This file is located at src/Illuminate/Console/Concerns/HasParameters.php
and contains a trait called HasParameters
. The trait provides methods for specifying command arguments and options.
Methods
specifyParameters
This method is used to specify the arguments and options on the command. It loops through the arguments and options defined in the getArguments
and getOptions
methods and adds them to the command.
getArguments
This method returns an empty array. It can be overridden in classes that use the HasParameters
trait to define the console command arguments.
getOptions
This method returns an empty array. It can be overridden in classes that use the HasParameters
trait to define the console command options.
<?php
namespace Illuminate\Console\Concerns;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputOption;
trait HasParameters
{
/**
* Specify the arguments and options on the command.
*
* @return void
*/
protected function specifyParameters()
{
// We will loop through all of the arguments and options for the command and
// set them all on the base command instance. This specifies what can get
// passed into these commands as "parameters" to control the execution.
foreach ($this->getArguments() as $arguments) {
if ($arguments instanceof InputArgument) {
$this->getDefinition()->addArgument($arguments);
} else {
$this->addArgument(...$arguments);
}
}
foreach ($this->getOptions() as $options) {
if ($options instanceof InputOption) {
$this->getDefinition()->addOption($options);
} else {
$this->addOption(...$options);
}
}
}
/**
* Get the console command arguments.
*
* @return array
*/
protected function getArguments()
{
return [];
}
/**
* Get the console command options.
*
* @return array
*/
protected function getOptions()
{
return [];
}
}