Lingara Lingara Ohjeet Oppaat API Kirjastot Sovellukset Rakenna Verkkosovellus
Kieli: Suomi

PHP

Tämä sivu on käännetty englannista. Jos ne eroavat toisistaan, englanninkielinen sivu on oikea. Lue englanninkielinen sivu

PHP-kirjasto on spinningcatstudios/lingara Packagist-palvelussa. Se vaatii PHP 8.2 -version tai uudemman ja käyttää HTTP-yhteyksiin PSR-18-standardia, joten se toimii Symfony HttpClient -asiakkaan, Guzzle-kirjaston tai oman asiakkaasi kanssa.

Miltä se näyttää

  • Kutsut ovat synkronisia. Ainoa tapa peruuttaa on lopettaa lukeminen: poistu foreach-silmukasta tai kutsu virralle close().
  • Virtaa luetaan foreach-silmukalla kerran. Sovita jokainen tapahtuma instanceof-tarkistuksella.
  • Virheet toteuttavat rajapinnan Lingara\Exception\LingaraException. API-virheessä errorCode() on vakaa koodi ja getCode() on HTTP-tila; retryAfter() on sekuntimäärä, tai null.
  • Valitse HTTP-pino http-argumentilla. Guzzle-kirjaston kanssa virrat vaativat, että allow_url_fopen on käytössä. Oman PSR-18-asiakkaan kanssa virtautuksen ja aikakatkaisujen määrittäminen on sinun vastuullasi.
  • PHP-FPM-ympäristössä jokainen worker aloittaa tyhjänä, joten anna asiakkaalle PSR-16-yhteensopiva tokenCache. Ilman sitä jokainen worker vaihtaa oman tunnuksensa, ja tunnuspäätepisteen tuntikohtainen raja jaetaan niiden kaikkien kesken.

Alla olevat esimerkit asentavat paketin, luovat asiakkaan, virtauttavat sanastoluettelon ja käsittelevät virheen.

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";
    }
}

Mitä tämä sivu kääri