https://github.com/nategood/commando
Commando é uma biblioteca de interface de linha de comando PHP que embeleza e simplifica a escrita de scripts PHP destinados ao uso em linha de comando.
Oferece suporte à geração de ajuda integrada, análise de opção limpa, validação, mapeamento de dados e muito mais. Aqui está um exemplo que cobre muitas das coisas que você pode fazer com o Comando …
<?php
$hello_cmd = new Command();
// Define first option
$hello_cmd->option()
->require()
->describedAs('A person's name');
// Define a flag "-t" a.k.a. "--title"
$hello_cmd->option('t')
->aka('title')
->describedAs('When set, use this title to address the person')
->must(function($title) {
$titles = array('Mr','Mrs','Ms');
return in_array($title, $titles);
})
->map(function($title) {
$titles = array(
'Mister' => 'Mr',
'Misses' => 'Mrs',
'Miss' => 'Ms'
);
if (array_key_exists($title, $titles))
$title = $titles[$title];
return "$title. ";
});
// Define a boolean flag "-c" aka "--capitalize"
$hello_cmd->option('c')
->aka('capitalize')
->aka('cap')
->describedAs('Always capitalize the words in a name')
->boolean();
$name = $hello_cmd['capitalize'] ?
ucwords($hello_cmd[0]) : $hello_cmd[0];
echo "Hello {$hello_cmd['title']}$name!", PHP_EOL;