CakePHPでシェルを使う際、コンソール出力をするにはプログラム中に$this->out($msg)
を記述する。仕様は以下。
変数名 | タイプ | 説明 | デフォルト |
---|---|---|---|
$message | string|array | 出力したい内容 | null |
$newlines | int | 出力後の改行数 | 1 |
$level | int | 出力レベル | Shell::NORMAL |
出力レベルとして指定できる値は、下記の3レベル。
フラグ | 値 | 出力条件 |
---|---|---|
Shell::QUIET | 0 | 常に出力 |
Shell::NORMAL | 1 | 未指定、quiet時に出力 |
Shell::VERBOSE | 2 | verbose指定時のみ出力 |
シェルの実行方法は次の通り。
cake shell_name [args]
オプション[args]に、出力レベルを指定することが可能。
指定しないとnormal(quietとverboseの間)になる。
cake shell_name --quiet # quiet
cake shell_name # normal
cake shell_name --verbose # verbose
シェル起動時に指定した[args]と、out()で指定した出力レベルにおける出力、非出力(×)を表にすると次の通り。
args | Shell::QUIET | Shell::NORMAL | Shell::VERBOSE |
---|---|---|---|
–quiet | 出力 | × | × |
(指定なし) | 出力 | 出力 | × |
–verbose | 出力 | 出力 | 出力 |
結果はこんな感じに。
$this->out('Quiet message', 1, Shell::QUIET);
$this->out('Normal message', 1, Shell::NORMAL);
$this->out('Loud message', 1, Shell::VERBOSE);
cake shell_name --quiet
Quiet message
cake shell_name
Quiet message
Normal message
cake shell_name --verbose
Quiet message
Normal message
Loud message
3レベルの使い分け方が自分にはいまいち分からないので、デバッグ時のみ確認したい値だけShell::VERBOSEを指定して、それ以外は未指定(Shell::NORMAL)でいいんじゃないかと思ってみたり。