Guzzle

guzzle

    Guzzle — удобная библиотека для получения содержимого веб сайта и последующей обработки его. Данная библиотека по умолчанию использует — CURL, а в случае ее отсутствия, то использует обертку — PHP потоков (php stream). Guzzle распространяется под лицензией — MIT. Она способна выполнять как синхронные запросы к веб ресурсу, так и работать с асинхронными запросами.    Для работы Guzzle  необходимы слудеющие условия:

  1. PHP 5.5.0
  2. Для использования обертки потоков, должно быть активировано — allow_url_fopen.
  3. Для использования CURL. Должен быть установлен cURL >= 7.19.4 с поддержкой OpenSSL и библиотеки zlib.

    Устанавливать рекомендуется через Composer:

php composer.phar require guzzlehttp/guzzle:~6.0

    Работа с данной библиотекой, довольно проста, но имеющая достаточно мощную начинку. Давайте подробно разберем ее работу на следующем примере:

  1. Синхронный запрос:
// Подключаем класс Client
use GuzzleHttp\Client;

// Инициализируем класс для работы с удаленными веб ресурсами
$client = new Client();

// Выполняем GET запрос к ресурсу - https://api.github.com/user, при этом используя авторизацию
$res = $client->request('GET', 'https://api.github.com/user', [
    'auth' => ['user', 'pass']
]);

// Получаем код ответа сервера (200 - успешно, 404 - страница не найдена)
$code = $res->getStatusCode();

// Извлекаем содержимое удаленного ресурса
$text = $res->getBody();

2. Асинхронный запрос:

// Подключаем класс Client
use GuzzleHttp\Client;
// Подключаем класс Request
use GuzzleHttp\Psr7\Request;
// Инициализируем класс для работы с удаленными веб ресурсами
$client = new Client();
// Инициализируем класс для работы с удаленным веб ресурсом - http://httpbin.org
$request = new Request('GET', 'http://httpbin.org');

// Задаем анонимную функцию, которая будет обрабатывать ответ сервера
$promise = $client->sendAsync($request)->then(function ($response) {
    echo '<h1>От сервера получен ответ: </h1><br> ' . $response->getBody();
});

// Запускаем соединение с удаленным ресурсом и передаем управление по обработке ответа анонимной функции
$promise->wait();

    Как видите все довольно просто, но не менее эффективно. Всем удачи в использовании данной библиотеки. Для более глубокого изучения всех ее возможностей, добро пожаловать на сайт Guzzle. Так же библиотека размещена на GitHub.


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *