进程管理
介绍
Laravel 通过 Symfony Process 组件 提供了一个小而美的 API,让你可以方便地从 Laravel 应用程序中调用外部进程。 Laravel 的进程管理功能专注于提供最常见的用例和提升开发人员体验。
调用过程
在调用过程中,你可以使用 进程管理 facade 提供的 run 和 start 方法。 run 方法将调用一个进程并等待进程执行完毕,而 start 方法用于异步进程执行。我们将在本文档中探究这两种方法。首先,让我们了解一下如何调用基本的同步进程并检查其结果:
use Illuminate\Support\Facades\Process;
$result = Process::run('ls -la');
return $result->output();
当然,由 run 方法返回的 Illuminate\Contracts\Process\ProcessResult 实例提供了多种有用的方法,用于检查进程处理结果:
$result = Process::run('ls -la');
$result->successful();
$result->failed();
$result->exitCode();
$result->output();
$result->errorOutput();
抛出异常
如果你有一个进程结果,并且希望在退出代码大于零(以此表明失败)的情况下抛出Illuminate\Process\Exceptions\ProcessFailedException的一个实例,你可以使用throw 和 throwIf 方法。 如果进程没有失败,将返回进程结果实例:
$result = Process::run('ls -la')->throw();
$result = Process::run('ls -la')->throwIf($condition);