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 virralleclose(). - Virtaa luetaan
foreach-silmukalla kerran. Sovita jokainen tapahtumainstanceof-tarkistuksella. - Virheet toteuttavat rajapinnan
Lingara\Exception\LingaraException. API-virheessäerrorCode()on vakaa koodi jagetCode()on HTTP-tila;retryAfter()on sekuntimäärä, tainull. - Valitse HTTP-pino
http-argumentilla. Guzzle-kirjaston kanssa virrat vaativat, ettäallow_url_fopenon 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.6PHP
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";
}
}