Giter VIP home page Giter VIP logo

helpers-cli-prompt's Introduction

PHP Helpers: Command-line Prompt for Input

Class for asking for input on the command-line

Installation

This library is installed via Composer. To install, use composer require pointybeard/helpers-cli-prompt or add "pointybeard/helpers-cli-prompt": "~1.0" to your composer.json file.

And run composer to update your dependencies:

$ curl -s http://getcomposer.org/installer | php
$ php composer.phar update

Requirements

This library makes use of the PHP Helpers: Flag Functions (pointybeard/helpers-functions-flags), PHP Helpers: Command-line Functions (pointybeard/helpers-functions-cli), and PHP Helpers: Command-line Message (pointybeard/helpers-cli-message) packages. They are installed automatically via composer.

To include all the PHP Helpers packages on your project, use composer require pointybeard/helpers or add "pointybeard/helpers": "~1.0" to your composer file.

Usage

Include this library in your PHP files with use pointybeard\Helpers\Cli\Prompt and instanciate the Prompt\Prompt class like so:

<?php

include __DIR__ . "/vendor/autoload.php";

use pointybeard\Helpers\Cli\Prompt\Prompt;
use pointybeard\Helpers\Cli\Message\Message;
use pointybeard\Helpers\Cli\Colour\Colour;

// The most basic of prompt
$name = (new Prompt("Enter your name"))->display();
// Enter your name:

// Prompt with a default value
$proceed = (new Prompt("Proceed with installation?"))
    ->default('yes')
    ->display()
;
// Proceed with installation? [yes]:

// A prompt that does not echo the value as it is typed
$password = (new Prompt)
    ->prompt("Enter password")
    ->flags(Prompt::FLAG_SILENT)
    ->display()
;

// Prompt with a custom Cli/Message/Message object instead of a string
$value = (new Prompt)
    ->prompt((new Message)
        ->message("Some fancy looking prompt")
        ->foreground(Colour::FG_BLACK)
        ->background(Colour::BG_YELLOW)
        ->flags(NULL)
    )
    ->display()
;

// Validate the input
$emailAddress = (new Prompt("Enter Email Address"))
    ->validator(function($input) {
        if(strlen(trim($input)) <= 0) {
            (new Message)
                ->message("Email address is required!")
                ->foreground(Colour::FG_WHITE)
                ->background(Colour::BG_RED)
                ->display()
            ;
            return false;
        }
        elseif(!strpos($input, "@")) {
            (new Message)
                ->message("Email address is invalid!")
                ->foreground(Colour::FG_WHITE)
                ->background(Colour::BG_RED)
                ->display()
            ;
            return false;
        }
        return true;
    })
    ->display()
;

Support

If you believe you have found a bug, please report it using the GitHub issue tracker, or better yet, fork the library and submit a pull request.

Contributing

We encourage you to contribute to this project. Please check out the Contributing documentation for guidelines about how to get involved.

License

"PHP Helpers: Command-line Prompt for Input" is released under the MIT License.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.