vla*_*ani 0 php closures http request laravel-8
我正在测试“并发请求”功能:
但我对如何动态创建闭包输入值感到困惑。
例如我有一个数组:
$a = [
'foo' => 'http//localhost/1',
'bar' => 'http//localhost/2'
];
Run Code Online (Sandbox Code Playgroud)
我需要动态地创建类似的东西:
use Illuminate\Http\Client\Pool;
use Illuminate\Support\Facades\Http;
$responses = Http::pool(fn (Pool $pool) => [
$pool->as('foo')->get('http://localhost/1'),
$pool->as('bar')->get('http://localhost/2'),
]);
return $responses['foo']->body();
Run Code Online (Sandbox Code Playgroud)
更新$a关闭内容应该发生变化。我怎样才能做到这一点?
谢谢
好的,我找到了解决方案:
use Illuminate\Http\Client\Pool;
use Illuminate\Support\Facades\Http;
$a = [
'foo' => 'http//localhost/1',
'bar' => 'http//localhost/2'
];
$fn2 = function (\Illuminate\Http\Client\Pool $pool) use ($a) {
foreach ($a as $aKey => $aVal) {
$arrayPools[] = $pool->as($aKey)->get($aVal);
}
return $arrayPools;
};
$responses = \Illuminate\Support\Facades\Http::pool($fn2);
echo $responses['foo']->body();
Run Code Online (Sandbox Code Playgroud)