ricardopedias / freep-console
Toolkit for implementing PHP-based terminal commands
Installs: 1 313
Dependents: 1
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
Type:tool
Requires
- php: ^8.0.0
- ricardopedias/freep-security: dev-main
Requires (Dev)
- codacy/coverage: dev-master
- phpmd/phpmd: @stable
- phpstan/phpstan: ^0.12
- phpunit/phpunit: ^9
- squizlabs/php_codesniffer: 3.*
README
English | Português |
---|
Synopsis
This repository contains the necessary functionality to easily implement a terminal command manager in a PHP application.
composer require ricardopedias/freep-console
For detailed information, see Documentation Summary.
How to use
1. Create a command
Implement a command called "my-command", based on the abstract class Freep\Console\Command
:
class MyCommand extends Command { protected function initialize(): void { $this->setName("my-command"); $this->addOption( new Option('-r', '--read', 'Read a text file', Option::REQUIRED) ); } protected function handle(Arguments $arguments): void { $this->info("Hello"); } }
2. Create a script
Create a file, call it for example "myconsole", and add the following content:
#!/bin/php <?php include __DIR__ . "/vendor/autoload.php"; array_shift($argv); $terminal = new Freep\Console\Terminal("/root/of/super/application"); $terminal->loadCommandsFrom("/directory/of/commands"); $terminal->run($argv);
3. Run the script
./myconsole my-command -r
# will display: Hello
./myconsole my-command --help # will display: # # Command: my-command # Run the 'my-command' command # # How to use: # ./myconsole my-command [options] # # Options: # -h, --help Display command help # -r, --read Read a text file
./myconsole --help # will display: # # How to use: # ./myconsole command [options] [arguments] # # Options: # -h, --help Display command help # # Available commands: # help Display command help # my-command Run the 'my-command' command
Characteristics
- Made for PHP 8.0 or higher;
- Codified with best practices and maximum quality;
- Well documented and IDE friendly;
- Made with TDD (Test Driven Development);
- Implemented with unit tests using PHPUnit;
- Made with ❤️ & ☕.