Guzzle CurlMultiHander wraps the built-in PHP curl_multi_ * which essentially completes the cURL Multi API
From the cURL docs:
To use the multi interface, you must first create a "multi handle" with curl_multi_init. This descriptor is then used as input for all additional curl_multi_ * functions.
With the multi-arm and multi-interface, you can perform multiple simultaneous transmissions in parallel. Each individual gear is created around a simple handle. You create all the convenient descriptors you need and configure the appropriate parameters for each simple descriptor using curl_easy_setopt.
source share