PHPackages                             chocofamilyme/smart-http - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. chocofamilyme/smart-http

ActiveLibrary[HTTP &amp; Networking](/categories/http)

chocofamilyme/smart-http
========================

HTTP клинте для общения между сервисами

1.1.3(11mo ago)011.3k↓40.9%11BSD-3-ClausePHPPHP &gt;= 7.2.0CI failing

Since Jan 3Pushed 11mo ago3 watchersCompare

[ Source](https://github.com/chocofamilyme/smart-http)[ Packagist](https://packagist.org/packages/chocofamilyme/smart-http)[ Docs](https://github.com/chocofamilyme/smart-http)[ RSS](/packages/chocofamilyme-smart-http/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (5)Versions (30)Used By (1)

HTTP клинте для общения между сервисами
=======================================

[](#http-клинте-для-общения-между-сервисами)

HTTP client на основе [Guzzle](https://github.com/guzzle/guzzle) с предустановленными настройками. Можно выполнять настроенные запросы - класс **Request**, так и самому тонко настраивать запросы - класс **Client**

### Возможности

[](#возможности)

- Кэширование GET запросов
- Автовыключение неработоспособных сервисов ([Pattern: Circuit Breaker](https://microservices.io/patterns/reliability/circuit-breaker.html))
- Повтор запроса, если сервис не отвечает за тайм аут или отвечает не успешным статусом
- Выполнение нескольких параллельных асинхронных запросов ([Pattern: API Composition](https://microservices.io/patterns/data/api-composition.html))

### Требования

[](#требования)

- PHP 7.2+
- guzzlehttp/guzzle 6.0+
- ejsmont-artur/php-circuit-breaker

### Установка

[](#установка)

```
$ composer require chocofamilyme/smart-http

```

### Пример

[](#пример)

Простой GET запрос
------------------

[](#простой-get-запрос)

```
    $request = new Chocofamily\SmartHttp\Http\Request($config, $cache);

    $options = [
        'serviceName' => 'serviceA',
        'cache'       => 3600,
        'data'        => [
            'id' => 1
        ],
    ];

    $response = $request->send('GET', 'http://service/item', $options);
```

Параметр `$cache` не обязательный. Если он отсутсвует, не работает кэширование запросов и автотключение сервисов.

### Парметры, которые содержит объект $config

[](#парметры-которые-содержит-объект-config)

КлючЗначениеОписаниеfailuresПо умолчанию 5Кол-во не удачных запросов для отключения сервисаlock\_timeПо умолчанию 600 cекВремя на которое заблокируется сервисretry\_timoutПо умолчанию 60 cекСколько секунд подождать перед тем как выполнить повтор, когда сервис заблокированtimeoutПо умолчанию 0.5 секВремя ожидания выполнения запроса на сервисеconnect\_timeoutПо умолчанию 1 секВремя ожидания принятия запроса сервисомdelayRetryПо умолчанию 200 мсЗадержка между повторами запроса. Формула задержки **номер попытки** \* **delayRetry**maxRetriesПо умолчанию 3Кол-во попыток повторов запросаcbKeyPrefixПо умолчанию "circuit\_breaker"Префикс ключа, для заблокированных сервисов### Парметры $options

[](#парметры-options)

КлючЗначениеОписаниеserviceName'serviceA'Сервис который будет заблокирован. Если имя отсутсвует, то блокировка отключенаcache3600 секВремя жизни кэшаcachePrefixПо умолчанию "smarthttp\_"С каким префиксом будут сохраняться данные на сервере кэшированияdataArrayДанные которые нужно передать### Кэширование ответов

[](#кэширование-ответов)

Можно кэшировать запросы на время указанное в параметре **cache**, ключом кэша является **url** запроса. При формирования ключа на основе **url** игнорируется query параметры **correlation\_id** и **span\_id**

###  Health Score

42

—

FairBetter than 90% of packages

Maintenance51

Moderate activity, may be stable

Popularity25

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity66

Established project with proven stability

 Bus Factor1

Top contributor holds 90% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~123 days

Recently: every ~494 days

Total

20

Last Release

348d ago

Major Versions

0.2.4 → 1.0.02020-01-06

PHP version history (2 changes)0.0.1PHP &gt;= 7.0.0

1.0.0PHP &gt;= 7.2.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/42729426?v=4)[Chocofamily](/maintainers/chocofamilyme)[@chocofamilyme](https://github.com/chocofamilyme)

---

Top Contributors

[![Vadim89](https://avatars.githubusercontent.com/u/3715929?v=4)](https://github.com/Vadim89 "Vadim89 (18 commits)")[![igor875126](https://avatars.githubusercontent.com/u/11134711?v=4)](https://github.com/igor875126 "igor875126 (1 commits)")[![ludovicose](https://avatars.githubusercontent.com/u/8954176?v=4)](https://github.com/ludovicose "ludovicose (1 commits)")

---

Tags

httpmicroservices

###  Code Quality

TestsCodeception

### Embed Badge

![Health badge](/badges/chocofamilyme-smart-http/health.svg)

```
[![Health](https://phpackages.com/badges/chocofamilyme-smart-http/health.svg)](https://phpackages.com/packages/chocofamilyme-smart-http)
```

###  Alternatives

[php-http/guzzle7-adapter

Guzzle 7 HTTP Adapter

9157.1M555](/packages/php-http-guzzle7-adapter)[graham-campbell/guzzle-factory

Provides A Simple Guzzle Factory With Good Defaults

916.4M49](/packages/graham-campbell-guzzle-factory)[laudis/neo4j-php-client

Neo4j-PHP-Client is the most advanced PHP Client for Neo4j

184616.9k31](/packages/laudis-neo4j-php-client)[codeception/module-phpbrowser

Codeception module for testing web application over HTTP

6529.8M508](/packages/codeception-module-phpbrowser)[eljam/guzzle-jwt-middleware

A jwt authentication middleware for guzzle 6

28722.5k3](/packages/eljam-guzzle-jwt-middleware)[mimmi20/browser-detector

Library to detect Browsers and Devices

48153.5k3](/packages/mimmi20-browser-detector)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
