geneweb\api\GenewebAPI::executeRequests PHP Method

executeRequests() public method

Envoi de la requête à l'API de Geneweb
public executeRequests ( $handlers ) : mixed
return mixed
    public function executeRequests($handlers)
    {
        // On initialise une liste de sessions curl « $multihandler »
        // chacune correspondra à une instance de curl qui ira se connecter à une URL
        $multihandler = curl_multi_init();
        foreach ($handlers as $handler) {
            curl_setopt($handler['c'], CURLOPT_RETURNTRANSFER, TRUE);
            curl_multi_add_handle($multihandler, $handler['c']);
        }
        do {
            curl_multi_exec($multihandler, $pendingConnex);
            usleep(10000);
            // 10 ms
        } while ($pendingConnex > 0);
        // parse responses
        $result = array();
        foreach ($handlers as $handler) {
            $data_encoded = curl_multi_getcontent($handler['c']);
            try {
                $class = $handler['class'];
                $data = new $class($data_encoded);
                $result[$handler['base']] = $data;
            } catch (\Exception $e) {
                $result[$handler['base']] = null;
            }
        }
        // Fermeture des handlers : important pour éviter les fuites mémoires
        foreach ($handlers as $handler) {
            curl_multi_remove_handle($multihandler, $handler['c']);
        }
        curl_multi_close($multihandler);
        return $result;
    }