2017 © Pedro PelΓ‘ez
 

library http_client

Http client library

image

rvasiliy/http_client

Http client library

  • Tuesday, April 24, 2018
  • by rvasiliy
  • Repository
  • 1 Watchers
  • 0 Stars
  • 15 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 8 Versions
  • 7 % Grown

The README.md

HttpClient

Latest Stable Version Total Downloads Build Status, (*1)

ОписаниС

HttpClient - Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для создания систСм для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΈ получСния запросов посрСдством http ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°. НапримСр REST сСрвисов., (*2)

Зависимости

  • PHP: вСрсия 5.6 ΠΈ Π²Ρ‹ΡˆΠ΅

Установка

    composer require rvasiliy/http_client

ΠΈΠ»ΠΈ, (*3)

    // composer.json

    "require": {
        "rvasiliy/http_client": "*"
    }

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сконфигурирован посрСдством массива ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:, (*4)

    $config = [
        // Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ url, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΊΠ°ΠΊ прСфикс ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ
        'baseUrl' => '',

        'serializer' => [
            'class' => 'rvasiliy\\http_client\\serializer\\StringSerializer',
        ],
    ];

Если трСбуСтся ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ json, Ρ‚ΠΎ конфигурация Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ:, (*5)

    $config = [
        // Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ url, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΊΠ°ΠΊ прСфикс ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ
        'baseUrl' => '',

        'serializer' => [
            'class' => 'rvasiliy\\http_client\\serializer\\JsonSerializer',
            'property' => [
                // true - Π΄Π°Π½Π½Ρ‹Π΅ Π² Π²ΠΈΠ΄Π΅ массива
                // false - Π΄Π°Π½Π½Ρ‹Π΅ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°
                'asArray' => true,
            ],
        ],
    ];

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ конфигурация ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°

    require __DIR__ . '/vendor/autoload.php';

    \rvasiliy\http_client\HttpClient::configure($config);
    $client = \rvasiliy\http_client\HttpClient::getInstance();

ΠΈΠ»ΠΈ, (*6)

    require __DIR__ . '/vendor/autoload.php';

    $client = \rvasiliy\http_client\HttpClient::getInstance();
    $client->setConfig($config);

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊ:, (*7)

    $config = \rvasiliy\http_client\HttpClient::getInstance()->getConfig();

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для получСния доступа ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ всСму ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ., (*8)

Π‘ вСрсии 2.0.0 Ссли конфигурация Π½Π΅ Π±Ρ‹Π»Π° ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π°, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ создана конфигурация ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Найти Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π² Ρ„Π°ΠΉΠ»Π΅ config/default.php., (*9)

ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° запросов

    // создаСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ запроса
    $request = new \rvasiliy\http_client\Request();
    $request->setUrl('http://example.com/status');
    $request->setParams(['name' => 'Jon']);

    // отправляСм запрос ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΎΡ‚Π²Π΅Ρ‚
    $response = $client->send($request);

Π‘ вСрсии 1.1.0 ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ запроса ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π² ΠΊΠ»ΠΈΠ΅Π½Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сСттСра., (*10)

    // создаСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ запроса
    $request = new \rvasiliy\http_client\Request();
    $request->setUrl('http://example.com/status');
    $request->setParams(['name' => 'Jon']);

    // ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ запрос Π² ΠΊΠ»ΠΈΠ΅Π½Ρ‚
    $client->setRequest($request);

    // отправляСм запрос ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΎΡ‚Π²Π΅Ρ‚
    $response = $client->send();

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…

Когда ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½, ΠΈΠ· Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅., (*11)

    $data = $response->getData();

Π€ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… зависит ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ сСриализатора Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ ΠΎΡ‚Π²Π΅Ρ‚Π°., (*12)

  • StringSerializer - Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ Π² Ρ‚Π°ΠΊΠΎΠΌ ΠΆΠ΅ Π²ΠΈΠ΄Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ Π±ΡƒΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ с сСрвСра;, (*13)

  • JsonSerializer - ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π² массив ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² зависимости ΠΎΡ‚ настроСк;, (*14)

  • Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ свои сСриализаторы, рСализуя интСрфСйс rvasiliy\http_client\Serializer., (*15)

Доступ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ сСриализатора Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΎΡ‚Π²Π΅Ρ‚Π°:, (*16)

    $serializer = $response->getSerializer();

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°. ВсС вмСстС

    // ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π°Π²Ρ‚ΠΎΠ·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ классов
    require __DIR__ . '/vendor/autoload.php';

    // массив ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ
    $config = [
        'baseUrl' => 'http://example.com',
        'serializer' => [
            'class' => 'rvasiliy\\http_client\\serializer\\JsonSerializer',
            'property' => [
                'asArray' => false,
            ],
        ],
    ];

    // создаСм ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅ΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚
    $client = \rvasiliy\http_client\HttpClient::getInstance();
    $client->setConfig($config);

    // создаСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ запроса
    $request = new \rvasiliy\http_client\Request();
    $request->setUrl('/status');
    $request->setParams(['name' => 'Jon']);

    // отправляСм запрос
    $response = $client->send($request);

    // ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅
    $data = $response->getData();

The Versions

24/04 2018

dev-master

9999999-dev https://github.com/rvasiliy/http_client

Http client library

  Sources   Download

MIT

The Requires

  • php >=5.6.0

 

The Development Requires

by Avatar rvasiliy

http client

24/04 2018

dev-dev

dev-dev https://github.com/rvasiliy/http_client

Http client library

  Sources   Download

MIT

The Requires

  • php >=5.6.0

 

The Development Requires

by Avatar rvasiliy

http client

24/04 2018

v2.0.1

2.0.1.0 https://github.com/rvasiliy/http_client

Http client library

  Sources   Download

MIT

The Requires

  • php >=5.6.0

 

The Development Requires

by Avatar rvasiliy

http client

07/04 2018

v2.0.0

2.0.0.0 https://github.com/rvasiliy/http_client

Http client library

  Sources   Download

MIT

The Requires

  • php >=5.6.0

 

The Development Requires

by Avatar rvasiliy

http client

31/03 2018

v1.1.1

1.1.1.0 https://github.com/rvasiliy/http_client

Http client library

  Sources   Download

MIT

The Requires

  • php >=5.6.0

 

The Development Requires

by Avatar rvasiliy

http client

25/03 2018

v1.1.0

1.1.0.0 https://github.com/RVasiliy/http_client

Http client library

  Sources   Download

MIT

The Requires

  • php >=5.6.0

 

The Development Requires

by Avatar rvasiliy

http client

24/03 2018

v1.0.0.1

1.0.0.1

Http client library

  Sources   Download

The Requires

  • php >=5.6.0

 

The Development Requires

by Avatar rvasiliy

22/03 2018

v1.0.0

1.0.0.0

Http client library

  Sources   Download

The Requires

  • php >=5.6.0

 

The Development Requires

by Avatar rvasiliy