PHP
Ukurasa huu umetafsiriwa kutoka Kiingereza. Ikiwa hizi mbili zinatofautiana, ukurasa wa Kiingereza ndio sahihi. Soma ukurasa wa Kiingereza
Maktaba ya PHP ni spinningcatstudios/lingara kwenye Packagist. Inahitaji PHP 8.2 au toleo jipya zaidi na huwasiliana kupitia HTTP kwa PSR-18, kwa hivyo inafanya kazi na Symfony HttpClient, Guzzle au mteja wako mwenyewe.
Jinsi inavyotumika
- Miito inasawazishwa. Njia pekee ya kughairi ni kuacha kusoma: toka kwenye
foreach, au itaclose()kwenye mtiririko. - Mtiririko husomwa kwa
foreach, mara moja. Linganisha kila tukio kwainstanceof. - Hitilafu hutekeleza
Lingara\Exception\LingaraException. Kwenye hitilafu ya API,errorCode()ni msimbo thabiti nagetCode()ni hali ya HTTP;retryAfter()ni idadi ya sekunde, aunull. - Chagua mfumo wa HTTP kwa hoja ya
http. Ukitumia Guzzle, mitiririko inahitajiallow_url_fopeniwe imewashwa. Ukitumia mteja wako mwenyewe wa PSR-18, kusanidi utiririshaji na vikomo vya muda ni jukumu lako. - Chini ya PHP-FPM kila mfanyakazi huanza akiwa mtupu, kwa hivyo mpe mteja
tokenCacheya PSR-16. Bila hiyo, kila mfanyakazi hubadilishana tokeni yake mwenyewe, na kikomo cha kila saa cha sehemu ya mwisho ya tokeni hushirikiwa na wote.
Sampuli zilizo hapa chini husakinisha kifurushi, huunda mteja, hutiririsha orodha ya msamiati na hushughulikia hitilafu.
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";
}
}