strukt/console

Strukt CLI 控制台

1.0.0 2024-09-24 19:46 UTC

This package is auto-updated.

Last update: 2024-09-24 19:47:09 UTC


README

Build Status Latest Stable Version Total Downloads Latest Unstable Version License

这是一个利用 docblock 解析命令描述和格式的控制台框架。

重要

此包使用 docblock 生成您的命令。docblock 必须使用单空格,不能使用制表符。请节约使用空格,不要留下不必要的空格,否则命令将无法工作。

用法

示例命令

namespace Command;

use Strukt\Console\Input;
use Strukt\Console\Output;

/**
* mysql:auth          MySQL Authentication
* 
* Usage:
*   
*      mysql:auth <database> --username <username> --password <password> [--host <127.0.0.1>]
*
* Arguments:
*
*      database  MySQL database name - optional argument
* 
* Options:
* 
*      --username -u   MySQL Username
*      --password -p   MySQL Password
*      --host -h       MySQL Host - optional default 127.0.0.1
*/
class MySQLAuth extends \Strukt\Console\Command{ 

	public function execute(Input $in, Output $out){

		$out->add(sprintf("%s:%s:%s", 
							$in->get("database"), 
							$in->get("username"), 
							$in->get("password")));
	}
}

在您的可执行文件中添加以下内容

#!/usr/bin/php
<?php
$app = new Strukt\Console\Application("Strukt Console");
$app->add(new Command\MySQLAuth);
$app->run($_SERVER["argv"]);

调用命令

$ php console mysql:auth payroll -u root -p p@55w0rd

提示输入和掩码输入,您可以在命令 docblock 中描述提示输入,但不是必须的。

...
//prompt for input
$username = $in->getInput("Username:");
$nickname = $in->getInput("Nickname:");
//masked input
$password = $in->getMaskedInput("Password:");
$cpassword = $in->getMaskedInput("Confirm Password:");
...