Lingara Lingara Τεκμηρίωση Οδηγοί API Βιβλιοθήκες Εφαρμογές Δημιουργία Διαδικτυακή εφαρμογή
Γλώσσα: Ελληνικά

PHP

Αυτή η σελίδα έχει μεταφραστεί από τα αγγλικά. Αν οι δύο διαφέρουν, η αγγλική σελίδα είναι η σωστή. Διαβάστε την αγγλική σελίδα

Η βιβλιοθήκη για PHP είναι το spinningcatstudios/lingara στο Packagist. Απαιτεί PHP 8.2 ή νεότερη και επικοινωνεί μέσω HTTP με το PSR-18, οπότε λειτουργεί με το Symfony HttpClient, το Guzzle ή έναν δικό σας client.

Πώς διαβάζεται

  • Οι κλήσεις είναι σύγχρονες. Ο μόνος τρόπος ακύρωσης είναι να σταματήσετε να διαβάζετε: βγείτε από το foreach, ή καλέστε close() στη ροή.
  • Μια ροή διαβάζεται με foreach, μία φορά. Αντιστοιχίστε κάθε συμβάν με instanceof.
  • Τα σφάλματα υλοποιούν το Lingara\Exception\LingaraException. Σε σφάλμα API, το errorCode() είναι ο σταθερός κωδικός και το getCode() είναι η κατάσταση HTTP· το retryAfter() είναι ένας αριθμός δευτερολέπτων, ή null.
  • Επιλέξτε τη στοίβα HTTP με το όρισμα http. Με το Guzzle, οι ροές χρειάζονται ενεργοποιημένο το allow_url_fopen. Με έναν δικό σας PSR-18 client, η ροή και τα χρονικά όρια ρυθμίζονται από εσάς.
  • Υπό PHP-FPM κάθε worker ξεκινά κενός, οπότε δώστε στον client ένα PSR-16 tokenCache. Χωρίς αυτό, κάθε worker ανταλλάσσει το δικό του token, και το ωριαίο όριο του endpoint token μοιράζεται σε όλους.

Τα παρακάτω δείγματα εγκαθιστούν το πακέτο, δημιουργούν έναν client, μεταδίδουν σε ροή μια λίστα λεξιλογίου και χειρίζονται ένα σφάλμα.

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

Τι περιβάλλει αυτή η σελίδα