CLI

Categoria
Componente
Tecnologie
PHP
Versione
2.0.1
Links

GSpataro/CLI è un componente PHP per la creazione di script eseguibili via riga di comando.

use GSpataro\CLI;

// Create a collection of commands
$commands = new CLI\CommandsCollection();

// Create a command called 'hi' that will print 'Hello world!' to the console
$commands->create('hi')
    ->setCallback(fn(CLI\Input $input, CLI\Output $output) => $output->print('Hello world!'));

// Initialize and run the script
$handler = new CLI\Handler($commands);
$handler->deploy();

Sviluppo

Questo componente nasce dal voler apprendere e approfondire il funzionamento di PHP per la gestione di script eseguibili da terminale. Le principali fonti di ispirazione sono Artisan, componente del framework Laravel, e Console, componente del framework Symfony.

Le sfide che mi si sono poste davanti sono:

  • Gestione di input e output con possibilità di personalizzazione degli stream STDIN e STDOUT per poter creare ambienti di test automatizzati
  • Utilizzo di una sintassi semplificata per aggiungere comandi sia in forma di callback che di classe con una gestione avanzata delle opzioni e degli argomenti
  • Creazione di tabelle come output