Встановлення SDK Bundle

Встановлення SDK Bundle

Крок 0: Рецепти Symfony Flex

Щоб Flex зробив налаштування автоматично, додайте репозиторій рецептів UFO-Tech у composer.json проєкту:

{
    "extra": {
        "symfony": {
            "endpoint": [
                "https://api.github.com/repos/ufo-tech/recipes/contents/index.json?ref=main",
                "flex://defaults"
            ]
        }
    }
}

Крок 1: Встановлення

composer require ufo-tech/json-rpc-sdk-bundle

Рецепт реєструє бандл, створює config/packages/json_rpc_sdk.yaml і додає в .env змінні першого постачальника.

Крок 2: Реєстрація бандла

Без рецепта додайте вручну в config/bundles.php:

return [
    // ...
    Ufo\JsonRpcSdkBundle\JsonRpcSdkBundle::class => ['all' => true],
];

Крок 3: Налаштування

# config/packages/json_rpc_sdk.yaml
json_rpc_sdk:
    namespace: App\Sdk
    vendors:
        - name: Orders
          url: '%env(resolve:ORDERS_API_URL)%'
          token_key: '%env(resolve:ORDERS_API_TOKEN_KEY)%'
          token: '%env(resolve:ORDERS_API_TOKEN)%'
# .env.local
ORDERS_API_URL=https://orders.example.com/rpc
ORDERS_API_TOKEN_KEY=Ufo-RPC-Token
ORDERS_API_TOKEN=change-me

Усі параметри — на сторінці Налаштування.

Простір імен із namespace має бути в PSR-4 автозавантаження і в ресурсі сервісів застосунку з autowire і autoconfigure. Для стандартного Symfony-проєкту App\Sdk → src/Sdk/ це вже так.

Крок 4: Генерація

bin/console ufo:sdk:generate

У src/Sdk/Orders/ з'являться класи процедур, DTO/, Enums/ і sdk_config.yaml.dist. Детально — Команди.

Крок 5: Асинхронні виклики (за потреби)

Якщо сервер публікує асинхронний транспорт, генеруються й класи Async*SDK. Для них потрібен resolver транспорту — див. Використання.