iquety / console
Toolkit for implementing PHP-based terminal routines
Installs: 1 766
Dependents: 3
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:tool
Requires
- php: ^8.3.0
- iquety/security: dev-main
Requires (Dev)
- codacy/coverage: dev-master
- iquety/docmap: *
- phpmd/phpmd: @stable
- phpstan/phpstan: ^1.8
- phpunit/phpunit: ^9
- squizlabs/php_codesniffer: 3.*
README
Synopsis
This repository contains the necessary functionality to easily implement a terminal routine manager in a PHP application.
composer require iquety/console
For detailed information, see Documentation Summary.
How to use
1. Create a routine
Implement a routine called "my-routine", based on the abstract class Iquety\Console\Routine
:
class MyRoutine extends Routine { protected function initialize(): void { $this->setName("my-routine"); $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 Iquety\Console\Terminal("/root/of/super/application"); $terminal->loadRoutinesFrom("/directory/of/routines"); $terminal->run($argv);
3. Run the script
./myconsole my-routine -r
# will display: Hello
./myconsole my-routine --help # will display: # # Routine: my-routine # Run the 'my-routine' routine # # How to use: # ./myconsole my-routine [options] # # Options: # -h, --help Display routine help # -r, --read Read a text file
./myconsole --help # will display: # # How to use: # ./myconsole routine [options] [arguments] # # Options: # -h, --help Display routine help # # Available routines: # help Display routine help # my-routine Run the 'my-routine' routine
Characteristics
- Made for PHP 8.3 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 ❤️ & ☕.