phpgt/cli
Composer 安装命令:
composer require phpgt/cli
包简介
Command line interface builder.
README 文档
README
Create multi-command terminal application with parameter requirements that are self-documenting and easy to unit test.
Example usage: Twitter client
CLI interaction:
$ twitter tweet --message "Sending a test Tweet from the terminal." Sent! View online: https://twitter.com/g105b/status/1038509073346510849 $ twitter dm --to @g105b --message "Hello, Greg!" Sent! $ twitter help Twitter example application Available commands: • tweet Send a Tweet to your timeline. • view View your timeline • follow Follow an account • dm Send a direct message. • login Authenticate your username. • help Show this help screen.
twitter.php:
$app = new Application( "Twitter example application", new CliArgumentList(...$argv), new TweetCommand(), new ViewCommand(), new FollowCommand(), new DmCommand(), new LoginCommand() ); $app->run();
Command/tweet.php
class TweetCommand extends Command { public function __construct() { $this->setName("tweet"); $this->setDescription("Send a Tweet to your timeline."); $this->setRequiredParameter(true, "message", "m"); $this->setOptionalParameter(true, "location", "l"); } public function run(?ArgumentValueList $arguments = null):int { if(!TwitterApi::isLoggedIn()) { $this->writeLine("You must login first.", StreamName::ERROR); return 1; } try { $uri = TwitterApi::sendTweet($arguments->get("message")); $this->writeLine("Sent! View online: $uri"); } catch(TwitterApiException $exception) { $this->writeLine( "Error sending Tweet: " . $exception->getMessage(), StreamName::ERROR ); return 2; } return 0; } }
Coloured output
Within a Command, output can be coloured consistently using the palette API:
$this->output("some text", Palette::GREEN); // single green message, resets afterwards $this->setOutputPalette(Palette::RED, Palette::BLACK); // set default fg/bg $this->output("all output now uses the default palette"); $this->resetOutputPalette(); // reset to terminal default
Proudly sponsored by
统计信息
- 总下载量: 11k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 4
- 依赖项目数: 9
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2016-10-23