da41b94c/yandex-translate-php

Yandex Cloud Translate API client

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/da41b94c/yandex-translate-php

v1.0.1 2026-01-16 06:21 UTC

This package is auto-updated.

Last update: 2026-01-16 06:33:32 UTC


README

Packagist Version CI

PHP-клиент для Yandex Cloud Translate API:

  • Авторизация через Api-Key (API key сервисного аккаунта)
  • Передаёт folderId в теле запроса
  • Поддерживает get() и getBatch()
  • Повторы (retry) при 429 / 5xx / таймаутах (настраивается)
  • Проверка SSL включена по умолчанию

Требования

  • PHP >= 7.4
  • ext-curl

Установка (Composer)

composer require da41b94c/yandex-translate-php

Настройка

Рекомендуется задавать переменные окружения:

  • YANDEX_API_KEY
  • YANDEX_FOLDER_ID

Пример (Linux):

export YANDEX_API_KEY="YOUR_API_KEY"
export YANDEX_FOLDER_ID="YOUR_FOLDER_ID"

Использование (одна строка)

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

use Da41b94c\YandexTranslate\YandexTranslate;

$Tr = new YandexTranslate([
	'MaxRetries' => 2,
	'Debug' => false,
]);

$Res = $Tr->get('Привет мир', 'ru', 'en');

if (!empty($Res->ok)) {
	echo $Res->translations[0]->text . PHP_EOL;
} else {
	echo 'Error: ' . $Res->code . ' :: ' . $Res->message . ' (HTTP ' . $Res->httpCode . ')' . PHP_EOL;
}

Использование (пакетный перевод)

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

use Da41b94c\YandexTranslate\YandexTranslate;

$Tr = new YandexTranslate();

$Res = $Tr->getBatch([
	'Первый текст',
	'Второй текст',
	'Третий текст',
], 'ru', 'de');

if (!empty($Res->ok)) {
	foreach ($Res->translations as $i => $t) {
		echo ($i + 1) . ') ' . $t->text . PHP_EOL;
	}
} else {
	echo 'Error: ' . $Res->code . ' :: ' . $Res->message . ' (HTTP ' . $Res->httpCode . ')' . PHP_EOL;
}

Опции

Опции передаются в конструктор:

  • ApiKey (string) — опционально, переопределяет env
  • FolderId (string) — опционально, переопределяет env
  • Timeout (int) — таймаут запроса, секунды (по умолчанию 15)
  • ConnectTimeout (int) — таймаут подключения, секунды (по умолчанию 8)
  • MaxRetries (int) — число повторов для временных ошибок (по умолчанию 2)
  • RetryBaseDelayMs (int) — базовая задержка backoff, мс (по умолчанию 300)
  • UserAgent (string) — свой User-Agent
  • CaBundlePath (string) — путь к CA bundle (опционально)
  • Debug (bool) — добавлять сырой ответ в extra при ошибках (по умолчанию false)

Коды ошибок

  • NO_CREDENTIALS — не заданы ApiKey/FolderId
  • EMPTY_TEXT — список текстов пуст
  • RATE_LIMIT — 429, слишком много запросов
  • UPSTREAM_5XX — 5xx от API
  • AUTH_OR_PERMISSIONS — 401/403 (неверный ключ/не хватает прав)
  • BAD_REQUEST — 400 (неверный payload и т.п.)
  • BAD_JSON — некорректный JSON-ответ / проблемы кодирования JSON
  • CURL_ERROR — сетевые/SSL/таймаут ошибки (см. meta.curlErrNo)

Заметки по безопасности

  • Никогда не коммить API ключи и .env.
  • Держи SSL-проверку включённой. Если в окружении нет корневых сертификатов — корректно установи CA certificates или укажи CaBundlePath.

Лицензия

MIT