Laravelで外部プロセスを起動する(Window/Linux共通)

2022年8月4日木曜日

PHP

t f B! P L

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();
スポンサーリンク
スポンサーリンク

このブログを検索

Profile

自分の写真
Webアプリエンジニア。 日々新しい技術を追い求めてブログでアウトプットしています。
プロフィール画像は、猫村ゆゆこ様に書いてもらいました。

仕事募集もしていたり、していなかったり。

QooQ