Cli クラス

コマンドライン上で入力オプション、パラメーター、出力テキストの操作ができます。

beep($num = 1)

beep メソッドは、コマンドを実行しているコンピュータでビープ音を鳴らします。

静的 はい
パラメータ
パラメータ デフォルト 説明
$num 1 ビープ音の回数。
返り値 void
Cli::beep(25);

color($text, $foreground, $background = null, $format = null)

color メソッドは、指定したテキストの色を変更します。

静的 はい
パラメータ
パラメータ デフォルト 説明
$text 必須 色を変更する文字列。
$foreground 必須 文字列の文字色。
$background null 文字列の背景色。
$format null 適用したい別の書式。現在のところ、'underline' のみサポートしています。
返り値 string
if (true === false)
{
	$message = Cli::color('Error: The universe is broken.', 'red');
}

else
{
	$message = Cli::color('All is well with the world.', 'green');
}

Cli::write($message);

error($text)

error メソッドは、コマンドラインにエラーとしてテキストを出力します (write メソッドと似ていますが、STDOUT ではなく STDERR を利用します) 。

静的 はい
パラメータ
パラメータ デフォルト 説明
$text 空の文字列 STDERR に出力するテキスト。
返り値 void
Cli::error('Failure: You hit the wrong key with your chubby hands, try using a stick to poke the keyboard.');

prompt($question = null, $options = array())

prompt メソッドは、ユーザの入力を受け付けるプロンプトを表示します。

静的 はい
パラメータ
パラメータ デフォルト 説明
$question null ユーザに質問する文章を表示し、入力を待ちます。
$options array() ユーザの選択肢となる項目の配列。
返り値 string
// 何かキーを押してください
Cli::prompt();

// どんな入力も受け付けます
$color = Cli::prompt('What is your favorite color?');

// どんな入力も受け付けますが、デフォルト値があります
$color = Cli::prompt('What is your favorite color?', 'white');

// 配列内にある項目のみ受け付けます
$ready = Cli::prompt('Are you ready?', array('y','n'));

option($name, null)

option は、コマンドラインから与えられたオプションを取得します。

静的 はい
パラメータ
パラメータ デフォルト 説明
$name 必須 オプションの名前。
$default null オプションが与えられなかった場合のデフォルト値です。
返り値 string
$ php index.php user -v --v -name=John --name=John

wait($seconds = 0, $countdown = false)

wait メソッドは、指定された秒数だけ待機します。オプションでカウントダウン表示をすることもできます。

静的 はい
パラメータ
パラメータ デフォルト 説明
$seconds 0 待機する秒数。
$countdown false カウントダウン表示を出力する。
返り値 void
Cli::write('Loading...');
Cli::wait(5, true);

write($text = '', $foreground = null, $background = null)

write メソッドは、コマンドラインにテキストを出力します。

静的 はい
パラメータ
パラメータ デフォルト 説明
$text 空の文字列 コマンドラインに出力するテキスト。
$foreground null 文字列の文字色。
$background null 文字列の背景色。
返り値 void
Cli::write('Hello World!');

stdout($resource = null)

現在の標準出力ストリームを変更または取得します。デフォルトは STDOUT です。

public なプロパティ $nocolor に true を設定すると すべての出力を強制的にプレーンテキストにできます。

静的 はい
パラメータ
パラメータ デフォルト 説明
$resource null 書き込み可能なファイルハンドル。null の場合は現在のファイルハンドルを取得。
返り値 前のファイルハンドルの値 (または、変更しなかった場合は現在の値)
$buffer = fopen('php://temp', 'w+');
$stdout = Cli::stdout($buffer);
Cli::write("Hello World!");
Cli::error("Where's my text? :(");
Cli::stdout($stdout);
Cli::write("There it is!");

rewind($buffer);
file_put_contents('out.log', stream_get_contents($buffer));

// $ cat out.log
// Hello World!

stderr($resource = null)

現在の標準エラー出力ストリームを変更または取得します。デフォルトは STDERR です。

public なプロパティ $nocolor に true を設定すると すべての出力を強制的にプレーンテキストにできます。

静的 はい
パラメータ
パラメータ デフォルト 説明
$resource null 書き込み可能なファイルハンドル。null の場合は現在のファイルハンドルを取得。
返り値 前のファイルハンドルの値 (または、変更しなかった場合は現在の値)
$errors = fopen('php://temp', 'w+');
$stderr = Cli::stderr($errors);
Cli::write("Hello World!");
Cli::error("Where's my text? :(");
Cli::stderr($stderr);
Cli::write("There it is!");

rewind($errors);
file_put_contents('out.log', stream_get_contents($errors));

// $ cat out.log
// Where's my text? :(