Lingara Lingara بەڵگەنامەکان ڕێنماییەکان API کتێبخانەکان ئەپەکان دروستکردن ئەپی وێب
زمان: سۆرانی

PHP

ئەم پەڕەیە لە ئینگلیزییەوە وەرگێڕدراوە. ئەگەر هەردووکیان جیاواز بوون، پەڕە ئینگلیزییەکە ڕاستە. پەڕە ئینگلیزییەکە بخوێنەوە

کتێبخانەی PHP بریتییە لە spinningcatstudios/lingara لەسەر Packagist. پێویستی بە PHP 8.2 یان نوێترە و لە ڕێگەی PSR-18ـەوە HTTP بەکار دەهێنێت، بۆیە لەگەڵ Symfony HttpClient، Guzzle یان کلاینتێکی خۆت کار دەکات.

لە کرداردا چۆنە

  • بانگکردنەکان هاوکاتن. تاکە ڕێگای هەڵوەشاندنەوە وەستاندنی خوێندنەوەیە: لە foreach دەرچۆ، یان close() لەسەر ستریمەکە بانگ بکە.
  • ستریمێک بە foreach تەنها یەک جار دەخوێندرێتەوە. هەر ڕووداوێک بە instanceof یەکبخە.
  • هەڵەکان Lingara\Exception\LingaraException جێبەجێ دەکەن. لە هەڵەیەکی APIـدا، errorCode() کۆدە جێگیرەکەیە و getCode() دۆخی HTTPـە؛ retryAfter() ژمارەیەک چرکەیە، یان null.
  • کۆمەڵەی HTTP بە ئارگیومێنتی http هەڵبژێرە. لەگەڵ Guzzle، ستریمەکان پێویستیان بە چالاککردنی allow_url_fopen هەیە. لەگەڵ کلاینتێکی PSR-18ـی خۆت، ڕێکخستنی ستریم و ماوەکان لەسەر خۆتە.
  • لە ژێر PHP-FPMـدا هەموو کرێکارێک بە بەتاڵی دەست پێ دەکات، بۆیە tokenCacheـێکی PSR-16 بدە بە کلاینتەکە. بەبێ ئەوە، هەر کرێکارێک تۆکنی خۆی دەگۆڕێتەوە، و سنووری کاتژمێری خاڵی کۆتایی تۆکن لە نێوان هەموویاندا هاوبەشە.

نموونەکانی خوارەوە پاکێجەکە دادەمەزرێنن، کلاینتێک دروست دەکەن، لیستێکی وشەسازی ستریم دەکەن و هەڵەیەک چارەسەر دەکەن.

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

ئەم پەڕەیە چی دەپێچێتەوە