Skip to content

Provide some useful utils for the php CLI. console color, CLI env, CLI code highlighter.

License

Notifications You must be signed in to change notification settings

php-toolkit/cli-utils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CLI Utils

License Php Version Latest Stable Version Github Actions Status

Provide some useful utils for the php CLI application.

  • Parse CLI arguments and options
  • Console color render
  • CLI code highlighter
  • Build simple CLI application
  • CLI ENV information helper

Install

composer require toolkit/cli-utils

Console color

Color::printf('<info>%s</info> world', 'hello');
Color::println('hello world', 'info');
Color::println('hello world', 'error');
Color::println('hello world', 'warning');
Color::println('hello world', 'success');

echo Color::render('hello world', 'success');

colors

PHP file highlight

This is inspire jakub-onderka/php-console-highlighter

use Toolkit\Cli\Highlighter;

// this is an comment
$rendered = Highlighter::create()->highlight(file_get_contents(__FILE__));

\Toolkit\Cli\Cli::write($rendered);

colors

Parse CLI arguments & options

use Toolkit\Cli\Flags;

$argv = $_SERVER['argv'];
// notice: must shift first element.
$script = \array_shift($argv);
// do parse
[$args, $shortOpts, $longOpts] = Flags::parseArgv($argv);

Build CLI application

You can quickly build an simple CLI application:

use Toolkit\Cli\App;

// create app instance
$app = new App([
  'desc' => 'this is my cli application',
]);

Register commands

Use closure:

$app->addCommand('test', function ($app) {
    echo "args:\n";
    /** @var Toolkit\Cli\App $app */
    /** @noinspection ForgottenDebugOutputInspection */
    print_r($app->getArgs());

}, 'the description text for the command: test');

Use closure with a config:

$app->addByConfig(function ($app) {
    echo "args:\n";
    /** @var Toolkit\Cli\App $app */
    /** @noinspection ForgottenDebugOutputInspection */
    print_r($app->getArgs());

}, [
  'name' => 'cmd2',
  'desc' => 'the description text for the command: test',
]);

Use an object:

use Toolkit\Cli\App;

class MyCommand
{
    public function getHelpConfig(): array
    {
        $help = <<<STR
Options:
  --info    Output some information

Example:
  {{fullCmd}}

STR;

        return [
            'name'  => 'list',
            'desc'  => 'list all directory name in src/',
            'help'  => $help,
        ];
    }

    public function __invoke(App $app)
    {
        echo "hello\n";
    }
}

// add command
$app->addObject(new MyCommand);

Run application

// run
$app->run();

Run demo: php example/liteApp

cli-app

CLI downloader

use Toolkit\Cli\Download;

$url  = 'http://no2.php.net/distributions/php-7.2.5.tar.bz2';
$down = Download::file($url, '');

// $down->setShowType('bar');
// $down->setDebug(true);
$down->start();

Progress bar

down-file-bar

Progress text

down-file-txt-bar

Projects

License

MIT

About

Provide some useful utils for the php CLI. console color, CLI env, CLI code highlighter.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages