千家信息网

在Laravel中如何执行Shell命令

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要介绍在Laravel中如何执行Shell命令,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!shell_exec() 和 exec()
千家信息网最后更新 2025年01月19日在Laravel中如何执行Shell命令

这篇文章主要介绍在Laravel中如何执行Shell命令,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

shell_exec()exec() 都可以执行 shell 命令。

如果你的命令不知道因为什么原因而崩溃,你将不会知道其原因 -- 因为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's 的 Process 组件。

使用这种方法,我可以抛出一个自定义异常,记录命令和输出,或者是记录到日志以寻找问题。

以上是"在Laravel中如何执行Shell命令"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

0