• 技术文章 >php框架 >Laravel

    说说在Laravel中怎么执行Shell命令 ?

    藏色散人藏色散人2021-11-26 14:56:28转载113
    下面由Laravel教程栏目带大家介绍关于怎么在 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;
        }
    }

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

    相关推荐:最新的五个Laravel视频教程

    原文地址:https://dev.to/kodeas/executing-shell-commands-in-laravel-1098

    译文地址:https://learnku.com/laravel/t/63048

    以上就是说说在Laravel中怎么执行Shell命令 ?的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:learnku,如有侵犯,请联系admin@php.cn删除
    专题推荐:Laravel Shell
    上一篇:登录网站没有显示laravel欢迎页面是什么情况? 下一篇:Larabel迁移文件发生错误怎么办?
    php中文网线上培训班

    相关文章推荐

    • 解决Laravel 8 undefined variable错误问题• 聊聊​laravel怎么用命令来执行脚本• laravel在nginx中能配置到已有站点路径吗?• 登录网站没有显示laravel欢迎页面是什么情况?

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网