Skip to content

Files

Latest commit

 

History

History
80 lines (61 loc) · 2.3 KB

api-parameter.md

File metadata and controls

80 lines (61 loc) · 2.3 KB

\Cli\Helpers\Parameter

Utility class to handle command-line parameters.

Example

Considering the following command:

my-script.php -u myname -p mypassord
my-script.php --username myname --password mypassord
my-script.php -u myname -p
my-script.php -u myname -p mypassord -v
my-script.php -u myname -p mypassord --verbose
my-script.php -u myname -p mypassord -h server.example.com
my-script.php -u myname -p mypassord --host server.example.com

Where:

-u USERNAME, --username USERNAME   User name (required)
-p PASSWORD, --password PASSWORD   Password (required)
-u HOST, --host HOST               Host (optional, defaults to 127.0.0.1)
-v, --verbose                      Verbose switch (optional)

Usage:

$options = \Cli\Helpers\Parameter::getFromCommandLine(array(
    'host'     => new Parameter('h', 'host'    , '127.0.0.1'),
    'username' => new Parameter('u', 'username', Parameter::VALUE_REQUIRED),
    'password' => new Parameter('p', 'password', Parameter::VALUE_REQUIRED),
    'verbose'  => new Parameter('v', 'verbose' , Parameter::VALUE_NO_VALUE),
));
var_dump( $options );

Executing this with my-script.php -u myname -p mypassord or my-script.php --username=myname --password=mypassord will display:

array(4) {
    'host'     => '127.0.0.1',
    'username' => 'myusername',
    'password' => 'mypassword',
    'verbose'  => false,
}

Executing this with my-script.php -u myname -p mypassord -h server.example.com -v will display:

array(4) {
    'host'     => 'server.example.com',
    'username' => 'myusername',
    'password' => 'mypassword',
    'verbose'  => true
}

Troubleshooting

Executing this with my-script.php -u myname will result in a Cli\Helpers\Exception\MissingRequiredParameter exception because the options '-p/--password' is required.

Executing this with my-script.php -u myname -p will result in a Cli\Helpers\Exception\MissingParameterValue exception because the options '-p/--password' requires a value.

Executing this with my-script.php -u myname -p password --password password will result in a Cli\Helpers\Exception\ConflictingParameters exception because the options '-p/--password' cannot be used with the short and long switches cannot be used simultaneously.