Lingara Lingara Belgeler Rehberler API Kütüphaneler Uygulamalar Oluştur Web uygulaması
Dil: Türkçe

PHP

Bu sayfa İngilizceden çevrilmiştir. İkisi arasında fark varsa İngilizce sayfa doğrudur. İngilizce sayfayı oku

PHP kütüphanesi, Packagist üzerindeki spinningcatstudios/lingara paketidir. PHP 8.2 veya üstünü gerektirir ve HTTP iletişimini PSR-18 üzerinden kurar; bu yüzden Symfony HttpClient, Guzzle ya da kendi istemcinizle çalışır.

Kullanımı nasıldır

  • Çağrılar eşzamanlıdır (senkron). İptal etmenin tek yolu okumayı bırakmaktır: foreach döngüsünden çıkın ya da akış üzerinde close() çağırın.
  • Bir akış foreach ile bir kez okunur. Her olayı instanceof ile eşleştirin.
  • Hatalar Lingara\Exception\LingaraException arayüzünü uygular. Bir API hatasında errorCode() kararlı koddur, getCode() ise HTTP durumudur; retryAfter() saniye cinsinden bir sayıdır ya da null olur.
  • HTTP yığınını http argümanıyla seçin. Guzzle ile akışlar için allow_url_fopen etkin olmalıdır. Kendi PSR-18 istemcinizle akışı ve zaman aşımlarını siz yapılandırırsınız.
  • PHP-FPM altında her worker boş başlar, bu yüzden istemciye bir PSR-16 tokenCache verin. Bu olmadan her worker kendi belirtecini alır ve belirteç uç noktasının saatlik sınırı hepsi arasında paylaşılır.

Aşağıdaki örnekler paketi kurar, bir istemci oluşturur, bir kelime listesini akış hâlinde alır ve bir hatayı işler.

PHP

composer require spinningcatstudios/lingara:0.1.0-alpha.6

PHP

use Lingara\Client;

$client = new Client(clientId: $clientId, clientSecret: $clientSecret);

PHP

use Lingara\Model\VocabRequest;
use Lingara\Stream\GenerateVocabularyEvent;

$request = new VocabRequest(['level' => 2, 'source_lang' => 'en', 'target_lang' => 'zh', 'count' => 8]);
foreach ($client->generateVocabulary($request) as $event) {
    if ($event instanceof GenerateVocabularyEvent\Item) {
        echo $event->data->getWord(), ': ', $event->data->getTranslation(), "\n";
    }
}

PHP

use Lingara\Exception\ApiException;
use Lingara\Exception\LingaraException;
use Lingara\Exception\MaintenanceException;
use Lingara\Exception\OAuthException;
use Lingara\Exception\TransportException;

try {
    $client->getUsage();
} catch (LingaraException $e) {
    if ($e instanceof ApiException) {
        // A refusal from the API: status, errorCode (stable) and message (localised).
        echo $e->status(), ' ', $e->errorCode(), ': ', $e->getMessage(), "\n";
        echo 'retry after: ', $e->retryAfter() ?? 'not given', "\n";
    } elseif ($e instanceof OAuthException) {
        // The token endpoint refused the credentials or the scopes.
        echo $e->status(), ' ', $e->error(), ': ', $e->description(), "\n";
    } elseif ($e instanceof MaintenanceException) {
        echo 'under maintenance; retry after: ', $e->retryAfter() ?? 'not given', "\n";
    } elseif ($e instanceof TransportException) {
        // No usable answer: connect, tls, reset, timeout, and so on.
        echo 'transport: ', $e->kind()->value, "\n";
    }
}

Bu sayfanın sarmaladıkları