PHPackages                             kokov1ch/example-client - 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. [API Development](/categories/api)
4. /
5. kokov1ch/example-client

ActiveLibrary[API Development](/categories/api)

kokov1ch/example-client
=======================

01[1 issues](https://github.com/Kokov1ch/drom-example-client/issues)PHP

Since Nov 13Pushed 1y ago1 watchersCompare

[ Source](https://github.com/Kokov1ch/drom-example-client)[ Packagist](https://packagist.org/packages/kokov1ch/example-client)[ RSS](/packages/kokov1ch-example-client/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Example Client
--------------

[](#example-client)

Этот проект реализует клиент, совместимый с интерфейсами PSR-17 и PSR-7 для абстрактного сервиса комментариев example.com. Библиотека предоставляет набор PHP-классов для взаимодействия с сервисом через HTTP-запросы.

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

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

### Локальный запуск с Docker

[](#локальный-запуск-с-docker)

#### 1. Разверните локальное окружение:

[](#1-разверните-локальное-окружение)

```
make up
```

#### 2. Запустите тесты:

[](#2-запустите-тесты)

```
make test
```

### Установка как библиотеки Сomposer

[](#установка-как-библиотеки-сomposer)

#### 1. Убедитесь, что в вашем composer.json указана следующая настройка:

[](#1-убедитесь-что-в-вашем-composerjson-указана-следующая-настройка)

`"minimum-stability": "stable"`

#### 2. Установите библиотеку с помощью Packagist:

[](#2-установите-библиотеку-с-помощью-packagist)

```
composer require kokov1ch/example-client
```

Если вы хотите использовать локальную версию библиотеки, добавьте её как символическую ссылку. Пример настройки composer.json:

```
...
  "require": {
    "php": ">=8.3",
    "kokov1ch/example-client": "@dev"
  },
  "repositories": [
    {
      "type": "path",
      "url": "vendor-fork/example-client",
      "options": {
        "symlink": true
      }
    }
  ]
  ...

```

Примеры использования
---------------------

[](#примеры-использования)

### Без использования фреймворка

[](#без-использования-фреймворка)

```
try {
    $httpClient = new Client();
    $httpFactory = new HttpFactory();

    $exampleClient = new ExampleClient(
        client: $httpClient,
        streamFactory: $httpFactory,
        requestFactory: $httpFactory
    );

    $comments = $exampleClient->getComments();
    echo "Список комментариев:\n";
    foreach ($comments as $comment) {
        echo "ID: {$comment->id}, Name: {$comment->name}, Text: {$comment->text}\n";
    }

    $response = $exampleClient->addComment('John Doe', 'This is a test comment.');
    echo "Добавлен комментарий. Ответ сервера: $response\n";

    $updateResponse = $exampleClient->updateComment(1, name: 'Jane Doe', text: 'Updated comment text.');
    echo "Комментарий обновлен. Ответ сервера: $updateResponse\n";

} catch (ExampleClientException $e) {
    echo "Произошла ошибка при работе с клиентом: {$e->getMessage()}\n";
}
```

### С использованием Symfony

[](#с-использованием-symfony)

#### **`services.yml`**

[](#servicesyml)

```
services:

  GuzzleHttp\Client: ~
  GuzzleHttp\Psr7\HttpFactory: ~

  Kokov1ch\DromExampleClient\ExampleClient:
    arguments:
      $client: '@GuzzleHttp\Client'
      $streamFactory: '@GuzzleHttp\Psr7\HttpFactory'
      $requestFactory: '@GuzzleHttp\Psr7\HttpFactory'

  App\Service\CommentService:
    arguments:
      $client: '@Kokov1ch\DromExampleClient\ExampleClient'
```

#### **`CommentService.php`**

[](#commentservicephp)

```
