• Главная
  • О нас
  • Статьи
  • Вакансии
  • Контакты

Guzzle – простой PHP HTTP Клиент (часть 1)

11 Март 2014 by Juds in How-To, PHP tags: PHP, Обучение

Как известно, в классическом варианте сайт делится на две области:

  • Фронт-энд (область доступная пользователю)
  • Бэк-энд (закрытая часть, где происходит управление данными сайта)

Как правило, контент для фронт-энда извлекается из стороннего источника, к примеру из базы данных. Однако в последнее время всё чаще приходится обращаться к сторонним API. В PHP есть расширение cURL (если активирован), которое позволяет осуществлять запросы к сторонним сервисам. Если вы не хотите сами настраивать POST или GET запросы через cURL, то библиотека Guzzle как раз для вас.

Guzzle это простой HTTP клиент для PHP. Инициализировать Guzzle очень просто: для начала вам понадобится composer. После этого создайте файл composer.json, с следующим содержанием:

1
2
3
4
5
6
7
8
9
10
11
{
     "name": "jd/guzzle demo",
     "authors": [
         {
             "name": "John Doe",
             "email": "john@doe.tst"
         }
     ],
     "require": {
 
     }

Добавляем в поле зависимость (require) библиотеку guzzle:

1
2
3
4
5
6
7
8
9
10
11
12
{
     "name": "jd/guzzle demo",
     "authors": [
         {
             "name": "John Doe",
             "email": "john@doe.tst"
         }
     ],
     "require": {
         "guzzle/guzzle": "~3.7"
     }
}

Сохраняем файл и запускаем команду composer install, которая сама скачает библиотеку и создаст файл автозагрузки!

Основы


Теперь давайте рассмотрим API библиотеки Guzzle:

1
2
3
4
5
6
7
8
9
10
11
12
<?php
chdir(dirname(__DIR__));
 
require_once 'vendor/autoload.php';
 
use Guzzle\Http\Client;
use Guzzle\Http\EntityBody;
use Guzzle\Http\Message\Request;
use Guzzle\Http\Message\Response;
 
/** @var $client Client */
$client = new Client("https://qrng.anu.edu.au");

Первые две строки должны быть знакомы всем, кто сталкивался с автозагрузкой файлов, сгенерированных composer-ом. При инициализации объекта Client, нам необходимо передать URL, к котором хотим подключиться. Обратите внимание, что мы передаём базовый URL, без параметров.

1
2
3
4
5
6
7
8
/** @var $request Request */
$request = $client->createRequest();
 
$request->setPath('/API/jsonI.php');
 
$request->getQuery()
     ->set('length', 10)
     ->set('type', 'uint8');

Затем мы задаём путь (/API/jsonI.php); URL параметры (length=10&type=uint8), и указываем тип запроса (GET), вызовом метода $client->get(). Если нам нужно будет выполнить POST запрос, то необходимо воспользоваться методом post(). Для выполнения запроса, вызываем $request->send() и помещаем результат в переменную $response. Если нам необходимо получить ответ от стороннего сервера, воспользуемся методом $response->getBody(). Для получения результата в виде строки, передаём значение TRUE.

Настройка URL параметров


В прошлом примере путь и параметры запроса мы указали в виде строки. В то же время можем воспользоваться более элегантным решением этой же задачи. Возможно нам понадобится включать какие-то параметры в зависимости от результата проверки.

1
2
3
4
5
6
7
8
/** @var $request Request */
$request = $client->createRequest();
 
$request->setPath('/API/jsonI.php');
 
$request->getQuery()
     ->set('length', 10)
     ->set('type', 'uint8');

Во-первых, создаём пустой запрос, вызвав метод $client->createRequest(). Далее можем воспользоваться методом setPath() или getQuery() для формирования строки запроса и параметров.

В следующей части рассмотрим компонент Monolog, который позволит записывать результаты выполнения запросов в логи.

Источник урока
Перевел: Станислав Протасевич

Google выпустит инструменты для разработчиков приложений для носимых гаджетов
Нелокальная локализация: как перевести игру на 7 языков и не налажать.

Leave a Comment! Отменить ответ

You must be logged in to post a comment.
Уроки
  • Cinema 4D
  • Unity3D
  • PHP
  • Delphi
  • JavaScript
  • Python
  • HTML5
  • Go
Статьи
  • Новости
  • Game Development
  • PHP
  • QA
  • IT Юмор
  • Разное
Теги
Android Composer Delphi excerption experience Game Design game development gameplay Git Go! AOP google Google Analytics HHVM it experience it юмор Laravel Linux manager Phalcon PHP Python QA RFC Selenium Silex Slim Symfony 2 unity3d warcraft Yii Yii 2 Zend Framework 2 Zephir Биографии Новости Обучение веб-разработка высоконагруженные проекты дайджест дизайн исследование подборка ссылки стартап тенденции
О Нас

Juds–компания по разработке программного обеспечения, разработке веб-проектов и мобильных приложений. Все предлагаемые нами решения индивидуальны и направлены на максимально точное удовлетворение потребностей наших партнеров. Мы находимся в постоянном поиске новых ярких решений. Главные критерии – актуальность применения и инновационность.

Статьи
  • Лучшее из мира PHP за 2013
  • Полезные функции Google Analytics
  • Что в SEO можно считать нормальным и работающим, а что – отжившим
  • 30 полезных для себя вещей
  • Дайджест интересных новостей и материалов из мира PHP (20 октября — 10 ноября 2013)
  • Cinema 4D: создаем плагин – объект
IT Юмор
Метки
Android Composer experience Game Design game development google HHVM it experience it юмор Laravel manager PHP unity3d Yii Zend Framework 2 Zephir Новости Обучение веб-разработка дайджест исследование подборка ссылки стартап тенденции
© 2014 Juds. Все права защищены.