进程管理
介绍
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);