ホームページ  >  記事  >  PHPフレームワーク  >  Laravel でシェルコマンドを実行する方法について話しますか?

Laravel でシェルコマンドを実行する方法について話しますか?

藏色散人
藏色散人転載
2021-11-26 14:56:283325ブラウズ

Laravelのチュートリアルコラムでは、Laravelでシェルコマンドを実行する方法を紹介していますので、お役に立てれば幸いです。

Laravel でシェルコマンドを実行する方法について話しますか?

shell_exec()exec() はどちらもシェル コマンドを実行できます。

コマンドが不明な理由でクラッシュした場合、その理由はわかりません。なぜなら、

shell_exec()exec() では例外がスローされないためです。 彼らは黙って失敗するだけです。

これが私の解決策です:

use Symfony\Component\Process\Process;

class ShellCommand
{
    public static function execute($cmd): string
    {
        $process = Process::fromShellCommandline($cmd);

        $processOutput = '';

        $captureOutput = function ($type, $line) use (&$processOutput) {
            $processOutput .= $line;
        };

        $process->setTimeout(null)
            ->run($captureOutput);

        if ($process->getExitCode()) {
            $exception = new ShellCommandFailedException($cmd . " - " . $processOutput);
            report($exception);

            throw $exception;
        }

        return $processOutput;
    }
}
    これは、Symfony の Process コンポーネントを使用します。関連する推奨事項: 最新の 5 つの Laravel ビデオ チュートリアル
このメソッドを使用すると、カスタム例外をスローしたり、コマンドと出力を記録したり、ログに記録して問題を見つけることができます。

関連する推奨事項:
最新の 5 つの Laravel ビデオ チュートリアル

元のアドレス: https://dev.to/kodeas/executing-shell -コマンド-in-laravel-1098

翻訳アドレス: https://learnku.com/laravel/t/63048

以上がLaravel でシェルコマンドを実行する方法について話しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlearnku.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。