在Laravel 10框架中的进程层接口
不出意外laravel 10未发布,延期了,不说了转载一篇迟来的文章,提前了解一下laravel10的部分功能。
Laravel 10, 将在下周发布, 将为Laravel引入一个进程层.
就像HTTP Facade使API的工作变得轻而易举一样, Process服务将使工作, 测试, 和运行CLI进程成为一个梦想.
你可以在下面的例子中看到这个功能的基本用法,
这个例子来自Taylor Otwell的Pull Request #45314:
use Illuminate\Support\Facades\Process;
$result = Process::run('ls -la');
$result->successful();
$result->failed();
$result->exitCode();
$result->output();
$result->errorOutput();
$result->throw();
$result->throwIf($condition);
流程层包括开箱即用的丰富功能,如:
1.流利的进程方法,在运行前建立一个进程实例
2.进程输出处理,因为它被接收
3.异步进程
4.进程池
5.通过fake()实现丰富的测试功能
6.在测试过程中防止游离的进程
测试进程从未如此简单,
我对围绕测试你在应用程序中运行的进程的代码API感到兴奋:
Process::fake([
'ls *' => Process::result('Hello World'),
]);
$result = Process::run('ls -la');
Process::assertRan(function ($process, $result) {
return $process->command == 'ls -la';
});
Process::assertRanTimes(function ($process, $result) {
return $process->command == 'ls -la';
}, times: 1);
Process::assertNotRan(function ($process, $result) {
return $process->command == 'cat foo';
});
请查看Pull Request #45314,了解实施细节和大量的例子。
https://github.com/laravel/framework/pull/45314
这个功能肯定会随着Laravel 10的发布而被记录下来.
向Nuno Maduro和Taylor Otwell致敬,
他们在Laravel 10中加入了Process,这看起来很不错!
转:
https://laravel-news.com/process-facade-laravel-10
相关文章