在Laravel 10框架中的进程层接口

2023-06-01 00:00:00 框架 接口 进程

不出意外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

相关文章