Lingara Lingara لارښود لارښودونه API کتابتونونه اپلیکیشنونه جوړول ویب اپلیکیشن
ژبه: پښتو

PHP

دا پاڼه له انګلیسي ژبې ژباړل شوې ده. که دواړه سره توپیر ولري، انګلیسي پاڼه سمه ده. انګلیسي پاڼه ولولئ

د PHP کتابتون په Packagist کې spinningcatstudios/lingara دی. دا 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 لاندې هر کارګر تش پیلېږي، نو کلاینټ ته یو PSR-16 tokenCache ورکړئ. بې له هغه، هر کارګر خپل ټوکن بدلوي، او د ټوکن د پای ټکي ساعتي حد د ټولو ترمنځ شریک دی.

لاندې بېلګې کڅوړه نصبوي، یو کلاینټ جوړوي، د لغتونو یو لېست په جریان کې راوړي او یوه تېروتنه اداره کوي.

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

دا پاڼه څه رانغاړي