Laravelで外部のシェル(Windowsの場合 .exeとか.bat)を起動する方法を紹介します。
Laravelは Symfony系のモジュールも取り込んでいるので、外部プロセスを起動する場合は Symfony\Component\Process\Process
クラスが使える。
[adsense}
使用方法
さっそく Process
クラスを使ってみよう。
以下は、Linuxの ls
コマンドを -lt
オプション付きで実行する例である。
use Symfony\Component\Process\Process;
$process = new Process(['ls', '-lt']);
$process->run();
出力内容を取得
ls
コマンドのように、標準出力またはエラー出力の内容を受け取る場合は、getOutput
または getErrorOutput
を使用します。
getOutput
は標準出力、getErrorOutput
はエラー出力を取得します。
$process = new Process(['ls', '-lt']);
$process->run();
$output = $process->getOutput() ?: $process->getErrorOutput();
echo $output;
[adsense}
終了コードを受け取る
起動した外部プロセスの終了コードを受け取る場合は、getExitCode
を使用します。
$process = new Process(['ls', '-lt']);
$process->run();
//終了コードを取得
$exit_code = $process->getExitCode();
0 件のコメント:
コメントを投稿