Allow Laravel commands to accept ad hoc arguments and options

0.1.1 2019-10-16 03:08 UTC

This package is auto-updated.

Last update: 2024-10-16 14:36:53 UTC


README

StyleCI ChipperCI Latest Version on Packagist

Allows the use of arguments in Laravel commands that are not defined in the signature. I'm not sure why you would ever want this. I know why I wanted it, but I'm reckless. So use at your own risk.

Installation

You can install the package via composer:

composer require edgrosvenor/adhoc

Usage

Create your commands as normal, but have them extend Adhoc\Command instead. Then any arguments you send to the command will set as attributes on the command object. So for instance, if you do:

php artisan do:something packages=fun

where adhoc is not in the signature of the command, in the execute method you can access it like this:

$this->packages; // fun

and you can access an array of the arguments passed like so:

$this->_adhoc; // ['packages']

Todo

I would like to find a cleaner way to extract the arguments. Without doing naughty things to the Symfony console, I can only seem to get the input as a string so I have to parse it by hand. It works, but I don't like the way it loks.

I also don't put arguments into the arguments array that Laravelians usually use to get arguments passed to their commands. So if you reach for $this->arguments('myadhocargument') it won't be there. I think mabye I should add it.

Finally, I think I might have a personal use case for ad hoc options. But until I am happier with how I'm extracting arguments I don't want to mess with options.

Credits

License

The MIT License (MIT). Please see License File for more information.