%PDF- %PDF-
Direktori : /home/silvzytp/crm-ind-code/vendor/laravel/framework/src/Illuminate/Http/Client/ |
Current File : //home/silvzytp/crm-ind-code/vendor/laravel/framework/src/Illuminate/Http/Client/Pool.php |
<?php namespace Illuminate\Http\Client; use GuzzleHttp\Utils; /** * @mixin \Illuminate\Http\Client\Factory */ class Pool { /** * The factory instance. * * @var \Illuminate\Http\Client\Factory */ protected $factory; /** * The handler function for the Guzzle client. * * @var callable */ protected $handler; /** * The pool of requests. * * @var array */ protected $pool = []; /** * Create a new requests pool. * * @param \Illuminate\Http\Client\Factory|null $factory * @return void */ public function __construct(Factory $factory = null) { $this->factory = $factory ?: new Factory(); if (method_exists(Utils::class, 'chooseHandler')) { $this->handler = Utils::chooseHandler(); } else { $this->handler = \GuzzleHttp\choose_handler(); } } /** * Add a request to the pool with a key. * * @param string $key * @return \Illuminate\Http\Client\PendingRequest */ public function as(string $key) { return $this->pool[$key] = $this->asyncRequest(); } /** * Retrieve a new async pending request. * * @return \Illuminate\Http\Client\PendingRequest */ protected function asyncRequest() { return $this->factory->setHandler($this->handler)->async(); } /** * Retrieve the requests in the pool. * * @return array */ public function getRequests() { return $this->pool; } /** * Add a request to the pool with a numeric index. * * @param string $method * @param array $parameters * @return \Illuminate\Http\Client\PendingRequest */ public function __call($method, $parameters) { return $this->pool[] = $this->asyncRequest()->$method(...$parameters); } }