Lingara Lingara Dokumentasyon Mga gabay API Mga library Mga app Gumawa Web app
Wika: Filipino

PHP

Isinalin mula sa Ingles ang pahinang ito. Kung magkaiba ang dalawa, ang pahinang Ingles ang tama. Basahin ang pahinang Ingles

Ang PHP library ay ang spinningcatstudios/lingara sa Packagist. Kailangan nito ang PHP 8.2 o mas bago at nakikipag-usap ito sa HTTP sa pamamagitan ng PSR-18, kaya gumagana ito sa Symfony HttpClient, Guzzle o sa sarili mong client.

Paano ito gamitin

  • Synchronous ang mga tawag. Ang tanging paraan para magkansela ay itigil ang pagbasa: lumabas sa foreach, o tawagin ang close() sa stream.
  • Binabasa ang stream gamit ang foreach, nang isang beses. Itugma ang bawat event gamit ang instanceof.
  • Ang mga error ay nag-i-implement ng Lingara\Exception\LingaraException. Sa isang API error, ang errorCode() ang matatag na code at ang getCode() ang HTTP status; ang retryAfter() ay bilang ng segundo, o null.
  • Piliin ang HTTP stack gamit ang argument na http. Sa Guzzle, kailangang naka-enable ang allow_url_fopen para sa mga stream. Sa sarili mong PSR-18 client, ikaw ang magko-configure ng streaming at mga timeout.
  • Sa PHP-FPM, walang laman ang bawat worker sa pagsisimula, kaya bigyan ang client ng isang PSR-16 na tokenCache. Kung wala nito, magpapalit ng sariling token ang bawat worker, at pinagsasaluhan nilang lahat ang limitasyon kada oras ng token endpoint.

Ini-install ng mga halimbawa sa ibaba ang package, gumagawa ng client, nag-i-stream ng listahan ng bokabularyo at humahawak ng error.

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

Ang binabalot ng pahinang ito