2017 © Pedro Peláez
 

library yii-reach-cli

image

koshkin/yii-reach-cli

  • Sunday, April 1, 2018
  • by koshkin
  • Repository
  • 1 Watchers
  • 0 Stars
  • 33 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 5 Versions
  • 0 % Grown

The README.md

yii-reach-cli

Component for Yii 1.* framework that helps to make console application more interactive and pretty for less time., (*1)

Requirements

  1. Yii framework >= 1.1.9
  2. PHP >= 5.5

Usage

The simplest and fastest way for receive all functionality is to extend console commands in your applications from \ReachCli\ConsoleCommand base class. This class contains everything from this package., (*2)

Most of provided functionality is divided to separate and independent traits that are located under ./src/ReachCli/ConsoleCommandTraits directory and \ReachCli\ConsoleCommandTraits namespace. You can choose and use any of them in any combination., (*3)

If you need all traits, but you don't want to extend from \ReachCli\ConsoleCommand base class, you can find all traits combined into one \ReachCli\ConsoleCommandTraits\AllTogether for easier include to projects., (*4)

Examples

In all examples RCli means \ReachCli\RCli class, and $this means instance of object that extends \ReachCli\ConsoleCommand class., (*5)

Output messages

    // Message
    RCli::msg('Message text', RCli::FONT_RED)
    $this->msg('Message text', RCli::FONT_RED);

    // Message with line ending
    RCli::line('Message text', RCli::FONT_RED)
    $this->line('Message text', RCli::FONT_RED);

    // Horizontal line
    RCli::hr();
    $this->hr();
    RCli::hr('*', RCli::FONT_BLUE);

    // Header
    RCli::header('Message text');
    $this->header('Message text');
    $this->header('Message text', RCli::FONT_RED, RCli::FONT_BLUE);

    // Message with some status
    $this->status('Good news', true);
    $this->status('Bad news', false);
    $this->status('Status with some value', true, 300);

Interact with user

    // Ask user for question with binary answer
    $userReply = $this->confirm("Do you want to launch rocket to Mars?", RCli::FONT_YELLOW);

    // Ask user for question with custom answer
    $userReply = $this->prompt("Please enter new password", RCli::FONT_BLUE);

    // Ask user for one of predefined answers
    $answers = [ 'banana', 'apple', 'strawberry', 'stone',];
    $userReply = $this->listSelect($answers, 'Please select most tasteless thing', 'apple');

Help for console command that is generated using PHPDoc annotations

Use trait ReachCli\ConsoleCommandTraits\Help to use this functionality separately. See ReachCli\Examples\HelpCommand for example., (*6)

    // Include trait
    use \ReachCli\ConsoleCommandTraits\Help;

    // Optional Set default action to 'help'
    public $defaultAction = 'help';

    // Or use this everywhere you want
    echo $this->getHelp();

Receive command, actions and parameters description, generated from command class structure and it's PHPDoc, (*7)

 ReachCli\Examples\HelpCommand
 Class HelpCommand. This command shows functionality of automatic help generation.

    Available actions:

    message - Print message.
        --message=value

    repeatMessage - Print one message many times.
        --message=value many times
        [--repeat=3]    Times to repeat message

    help [default]  - Default action - show command help.

Errors and warnings

Use trait ReachCli\ConsoleCommandTraits\ErrorWarning to use this functionality separately., (*8)

    $this->warning('Please try one more time');
    $this->error('Thank you Mario, but your princess is in another castle!');

Count different events and prints statistic for this events

Use trait ReachCli\ConsoleCommandTraits\Statistic to use this functionality separately., (*9)

    // Remember "Event 1"
    $this->inc('Event 1');
    // Remember "Event 2" for 3 times
    $this->inc('Event 2', 3);

    // Print statistic
    $this->printStat();

Command execution timers

Use trait ReachCli\ConsoleCommandTraits\Timer to use this functionality separately. See ReachCli\Examples\TimerCommand for example., (*10)

    $this->beginTimer(); // Start timer
    // ... Do something, maybe iteration of some cycle
    print "Execution time" . $this->stopTimer(); // Get iteration time

    print "Command total execution time" . $this->getExecutionTime();

The Versions

01/04 2018

v0.1.0

0.1.0.0

  Sources   Download

27/07 2016

dev-master

9999999-dev

Decorators and helpers for console applications based on Yii 1.* framework

  Sources   Download

MIT

The Requires

 

by Koshkin Alex

18/06 2016

v0.2.2

0.2.2.0

Decorators and helpers for console applications based on Yii 1.* framework

  Sources   Download

MIT

The Requires

 

by Koshkin Alex

17/06 2016

v0.2.1

0.2.1.0

Decorators and helpers for console applications based on Yii 1.* framework

  Sources   Download

MIT

The Requires

 

by Koshkin Alex

17/06 2016

v0.2.0

0.2.0.0

Decorators and helpers for console applications based on Yii 1.* framework

  Sources   Download

MIT

The Requires

 

by Koshkin Alex