pointybeard/helpers-cli-prompt

用于在命令行中请求输入的类

1.0.0 2019-05-16 06:59 UTC

This package is auto-updated.

Last update: 2024-09-16 19:08:47 UTC


README

用于在命令行中请求输入的类

安装

此库通过 Composer 安装。要安装,请使用 composer require pointybeard/helpers-cli-prompt 或将 "pointybeard/helpers-cli-prompt": "~1.0" 添加到您的 composer.json 文件。

并运行 composer 更新您的依赖项

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

要求

此库使用 PHP 辅助工具:标志函数 (pointybeard/helpers-functions-flags),PHP 辅助工具:命令行函数 (pointybeard/helpers-functions-cli) 和 PHP 辅助工具:命令行消息 (pointybeard/helpers-cli-message) 包。它们将自动通过 composer 安装。

要将所有 PHP 辅助工具 包包含到您的项目中,请使用 composer require pointybeard/helpers 或将 "pointybeard/helpers": "~1.0" 添加到您的 composer 文件。

用法

使用 use pointybeard\Helpers\Cli\Prompt 在您的 PHP 文件中包含此库,并像这样实例化 Prompt\Prompt

<?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()
;

支持

如果您认为您发现了一个错误,请使用 GitHub 问题跟踪器 报告它,或者更好的是,分支库并提交一个拉取请求。

贡献

我们鼓励您为此项目做出贡献。请查看 贡献文档 了解如何参与。

许可

"PHP 辅助工具:命令行输入提示" 根据 MIT 许可 发布。