Содержание
Когда мы говорим о клиентских библиотеках HTTP для доступа к веб-API в PHP, пропивать а также Unirest являются королями, однако иногда, в зависимости от размера или важности вашего проекта, вам не нужна такая библиотека, а только cURL. Дело в том, что cURL с синтаксисом по умолчанию может стать утомительным для работы, поэтому вы можете использовать оболочку, которая упрощает многие задачи и облегчает выполнение запросов. В этом топе мы хотим поделиться с вами 7 лучшими библиотеками-обертками, доступными для cURL в сети.
7. Керл от dcai
Эта оболочка предлагает уровень абстракции, который упрощает синтаксис библиотеки PHP cURL:
$http = new dcai\curl;
// enable cache
$http = new dcai\curl(array('cache'=>true));
// enable cookie
$http = new dcai\curl(array('cookie'=>true));
// enable proxy
$http = new dcai\curl(array('proxy'=>true));
// HTTP GET
$response = $http->get('http://example.com');
// HTTP POST
$response = $http->post('http://example.com/', array('q'=>'words', 'name'=>'moodle'));
// POST RAW
$xml = 'perform';
$response = $http->post('http://example.com/', $xml);
// HTTP PUT
$response = $http->put('http://example.com/', array('file'=>'/var/www/test.txt');
6. CurlWrapper
CurlWrapper — это гибкий класс-оболочка для расширения PHP cURL. Вы можете легко инициализировать экземпляр библиотеки с помощью:
try {
$curl = new CurlWrapper();
} catch (CurlWrapperException $e) {
echo $e->getMessage();
}
Объект CurlWrapper поддерживает 5 типов запросов: HEAD, GET, POST, PUT и DELETE. Вы должны указать URL-адрес для запроса и при желании указать ассоциативный массив или строку запроса переменных для отправки вместе с ним:
$response = $curl->head($url, $params);
$response = $curl->get($url, $params);
$response = $curl->post($url, $params);
$response = $curl->put($url, $params);
$response = $curl->delete($url, $params);
5. Роллинг cURLx
Rolling Curl — это простая в использовании оболочка cURL Multi для PHP с очень интересным названием. Он направлен на то, чтобы сделать одновременные запросы HTTP в PHP как можно проще. Сначала инициализируйте класс максимальным количеством одновременных запросов, которые вы хотите открыть одновременно:
$RCX = new RollingCurlX(10);
Все запросы после этого будут поставлены в очередь до тех пор, пока не завершится
$url = 'http://www.google.com/search?q=apples';
$post_data = ['user' => 'bob', 'token' => 'dQw4w9WgXcQ']; //set to NULL if not using POST
$user_data = ['foo', $whatever];
$options = [CURLOPT_FOLLOWLOCATION => false];
function callback_functn($response, $url, $request_info, $user_data, $time) {
$time; //how long the request took in milliseconds (float)
$request_info; //array returned by curl_getinfo($ch), plus a couple extras
}
$RCX->addRequest($url, $post_data, 'callback_functn', $user_data, $options, $headers);
Отправьте запросы. Блокирует до тех пор, пока не завершатся все запросы или не истечет время ожидания:
$RCX->execute();
4. PHP Curl
PHP Curl — это очень простой класс-оболочка PHP curl для cURL. По мнению автора, этот класс является наименьшей из возможных ООП-оболочек для возможностей PHP-curl. Обратите внимание, что это не подразумевается как абстракция высокого уровня. Вы все еще должны знать, как работает curl «на чистом PHP», вам нужно знать параметры curl, которые нужно установить, и вам нужно знать некоторые основы HTTP. Синтаксис удобен для разработчиков:
// newRequest, newJsonRequest and newRawRequest returns a Request object
$request = $curl->newRequest('post', $url, ['foo' => 'bar'])
->setHeader('Accept-Charset', 'utf-8')
->setHeader('Accept-Language', 'en-US')
->setOption(CURLOPT_CAINFO, '/path/to/cert')
->setOption(CURLOPT_FOLLOWLOCATION, true);
$response = $request->send();
3. Curl Easy
Curl Easy — это оболочка для расширения cURL в PHP. Поддерживает параллельные и неблокирующие запросы. Это небольшая, но мощная и надежная библиотека, которая ускоряет работу. Если вы устали от использования расширения PHP cURL с его процедурным интерфейсом, но хотите также контролировать выполнение скриптов, это отличный выбор для вас. Эта библиотека:
- широко протестирован.
- легкая библиотека с интерфейсом среднего уровня. Это не универсальная библиотека.
- параллельные / асинхронные соединения с очень простым интерфейсом.
- параллельное подключение / отключение запросов во время выполнения!
- поддержка обратных вызовов, так что вы можете контролировать процесс выполнения.
- интеллектуальные сеттеры как альтернатива константам CURLOPT_ *.
- если вы знаете расширение cURL php, вам не нужно изучать вещи с самого начала
Его синтаксис довольно прост для понимания:
getOptions()
->set(CURLOPT_TIMEOUT, 5)
->set(CURLOPT_RETURNTRANSFER, true);
$response = $request->send();
$feed = json_decode($response->getContent(), true);
echo "Current Bitcoin price: " . $feed['data']['rate'] . " " . $feed['data']['code'] . "\n";
2. Керл Шубер
Библиотека Curl — это базовая оболочка CURL для PHP. Объект Curl поддерживает 5 типов запросов: HEAD, GET, POST, PUT и DELETE. Вы должны указать URL-адрес для запроса и при желании указать ассоциативный массив или строку переменных для отправки вместе с ним. Просто потребуйте и инициализируйте класс Curl следующим образом:
require_once 'curl.php';
$curl = new Curl;
$response = $curl->head($url, $vars = array());
$response = $curl->get($url, $vars = array()); # The Curl object will append the array of $vars to the $url as a query string
$response = $curl->post($url, $vars = array());
$response = $curl->put($url, $vars = array());
$response = $curl->delete($url, $vars = array());
1. PHP Curl Class
PHP Curl Class — это очень хорошо написанная оболочка cURL, которая позволяет действительно легко отправлять HTTP-запросы и интегрироваться с любым видом веб-API. PHP Curl Class работает с PHP 5.3, 5.4, 5.5, 5.6, 7.0, 7.1 и HHVM. Эта библиотека широко известна и предлагает очень простой синтаксис:
require __DIR__ . '/vendor/autoload.php';
use \Curl\Curl;
$curl = new Curl();
$curl->get('https://www.example.com/');
if ($curl->error) {
echo 'Error: ' . $curl->errorCode . ': ' . $curl->errorMessage . "\n";
} else {
echo 'Response:' . "\n";
var_dump($curl->response);
}
Если вам известна еще одна замечательная библиотека-обертка для расширения cURL, написанная на PHP, пожалуйста, поделитесь ею с сообществом в поле для комментариев.