andreypostal/cli

View on GitHub
examples/BooleanFlag/cmd

Summary

Maintainability
Test Coverage
<?php
namespace Andrey\Cli\Examples\BooleanFlag;

use Exception;
use InvalidArgumentException;

use Andrey\Cli\Types\Command;
use Andrey\Cli\Types\Param;

use Andrey\Cli\App;


use Andrey\Cli\Types\ConsoleLevel;

require './../../vendor/autoload.php';

try {
    $app = new App(
        appName: 'MyApp',
        description: 'My app has a cool description',
        cmd: 'php cmd',
        params: [
            new Param(
                key: 'watch',
                flag: 'w',
                helpText: 'This is just a global watch argument',
                isBool: true,
            ),
        ],
        commands: [
            new Command(
                key: 'run',
                description: 'This action will run soon',
                service: [
                    'instance' => Service::class,
                    'entrypoint' => 'process',
                ],
            ),
        ],
    );
    $app->run($argv);
} catch (InvalidArgumentException $e) {
    App::console($e->getMessage(), ConsoleLevel::ERROR);
} catch (Exception $e) {
    App::console($e->getMessage(), ConsoleLevel::ERROR);
    App::console(print_r($e, true), ConsoleLevel::ERROR);
}