Executando verificação de segurança...
3

Em sending_requests, não vi motivo para existir a função poolResponseHandler. Afinal, vc cria uma instância de stdClass e fica passando ela para as outras funções, que setam o campo response que só é usado dentro das funções. Como o response (e nenhuma outra informação da classe) é usada fora dela, e ele sempre é sobrescrito toda vez que uma requisição é feita, acaba ficando meio que sem função.

Ou seja, poderia ser feito sem esse objeto:

function send_reqs(CurlHandle $handler): void {
    for ($i = 1; $i <= 10; $i++) {
        curl_setopt($handler, CURLOPT_URL, REQUEST_URL.REQUEST_ROUTE."/$i");
        curl_setopt($handler, CURLOPT_RETURNTRANSFER, true);
        // response só é usado dentro da função, então não precisa do poolResponseHandler
        $response = curl_exec($handler);
        if($response == false) {
            pprint_err_msg("Failed to make request at given url ".REQUEST_URL. "/$i");
        }

        $data = json_decode($response, true);
        pprint_reqs($data);
        sleep(WAIT_TIME);
    }
}

function send_req(CurlHandle $handler): void {
    curl_setopt($handler, CURLOPT_URL, REQUEST_URL.REQUEST_ROUTE."/1");
    curl_setopt($handler, CURLOPT_RETURNTRANSFER, true);
    // response só é usado dentro da função, então não precisa do poolResponseHandler
    $response = curl_exec($handler);
    if($response == false) {
        pprint_err_msg("Failed to make request at given url ".REQUEST_URL);
    }
    printf("%s\n", $response);
}

function main(): int {
    $curl = curl_init();

    send_reqs($curl);
    send_req($curl);

    curl_close($curl);
    return 0;
}

Em download_files até faz sentido porque em uma função vc seta um dos campos do objeto, que depois é usado em outra função. Mas no caso acima, da forma que está, não vejo necessidade do poolResponseHandler.


Se quiser enviar muitas requisições de uma vez, outra opção é usar curl_multi_init e as demais funções curl_multi_*, que roda as requisições em paralelo.

Carregando publicação patrocinada...