elfsundae / console
CLI library based on Laravel Console for creating PHP console application.
Requires
- php: >=5.6.4
- illuminate/console: ^5.4
- illuminate/container: ^5.4
- illuminate/events: ^5.4
Requires (Dev)
- mockery/mockery: 0.9.*
- phpunit/phpunit: ~5.7
Suggests
- vlucas/phpdotenv: Loads environment variables from .env to getenv(), $_ENV and $_SERVER automagically.
This package is auto-updated.
Last update: 2024-10-29 04:59:20 UTC
README
CLI library based on Laravel Console for creating PHP console application.
Installation
$ composer require elfsundae/console
Usage
First, create a PHP script and make it executable:
#!/usr/bin/env php <?php require __DIR__.'/vendor/autoload.php'; $app = new ElfSundae\Console\Application; // ... register commands $app->run();
Then, you can register commands using add
or command
method.
The add
method accepts an Illuminate\Console\Command
instance or a Symfony\Component\Console\Command\Command
instance. The command
method may be used for register a Closure based command, it accepts three arguments: the command signature, a Closure which receives the commands arguments and options, and the optional description of the command.
class Example extends Illuminate\Console\Command { protected $signature = 'example {--foo=bar : The "foo" option description}'; protected $description = 'Example command description'; public function handle() { $this->comment($this->option('foo')); } } $app->add(new Example); $app->command('title {username}', function ($username) { $this->comment(title_case($username)); }, 'The `title` command description');
To build a single command application, you may pass true
to the second argument of the setDefaultCommand
method, or just call the runAsSingle
method:
(new ElfSundae\Console\Application) ->add($command = new Example) ->getApplication() ->setDefaultCommand($command->getName(), true) ->run();
(new ElfSundae\Console\Application) ->add(new Example) ->getApplication() ->runAsSingle();
Documentation
Testing
$ composer test
License
This package is open-sourced software licensed under the MIT License.