lokalise/php-lokalise-api

Lokalise API client

4.3.0 2024-10-02 09:58 UTC

README

Client library for Lokalise API 2.0, written with PHP. Full API reference.

Changelog is located here.

Getting started

  1. PHP 7.4.x or greater is required
  2. Install LokaliseApiClient using Composer (recommended) or manually

Composer installation

  1. Get Composer
  2. Require LokaliseApiClient with php composer.phar require lokalise/php-lokalise-api
  3. Add the following to your application's main PHP file: require 'vendor/autoload.php';

Construct LokaliseApiClient

Create and grab your API token at Lokalise profile

$client = new \Lokalise\LokaliseApiClient($apiToken);

Request

Comments

Contributors

Files

Keys

Languages

Payment Cards

Projects

Queued Processes

Screenshots

Snapshots

Tasks

Teams

Team Users

Team User Groups

Translations

Translation Providers

Orders

Webhooks

Branches

Response

/** @var \Lokalise\LokaliseApiResponse $response */
$response = $client->languages->listSystem();

$response->
    headers                // Associative array of Lokalise headers received
    getContent()           // Return response data as associative array
    __toArray()            // getContent() alias. Return response data as associative array
    __toString()           // Return JSON encoded response data
    getTotalCount()        // Return total count of filtered items in List methods
    getPageCount()         // Return count of pages in List methods (based on limit parameter)
    getPaginationLimit()   // Return pagination limit used in the request
    getPaginationPage()    // Return current page of the request
    getNextCursor()        // Return next cursor for cursor based pagination
    hasNextCursor()        // Return true if next cursor is present for cursor based pagination

Utils

\Lokalise\Utils::
    base64FileEncode($filePath)    // Get base64 encoded contents with leading mime type

Exceptions and errors

\Lokalise\Exceptions\LokaliseApiException       // Exception throws when Lokalise API can't be reached using Guzzle
\Lokalise\Exceptions\LokaliseResponseException  // Exception throws when Lokalise API responded with a single error

Best practice

$client = new \Lokalise\LokaliseApiClient($apiToken);

try {
    $language = $client->languages->retrieve($projectId, $languageId)->getContent();
} catch (\Lokalise\Exceptions\LokaliseApiException $e) {
    // try again later or break
} catch (\Lokalise\Exceptions\LokaliseResponseException $e) {
    // Request cannot be completed. More details in {$e->getCode()} and {$e->getMessage()}
    // break
}

Rate limits

Access to all endpoints is limited to 6 requests per second from 14 September, 2021. This limit is applied per API token and per IP address. If you exceed the limit, a 429 HTTP status code will be returned and the corresponding exception will be raised that you should handle properly. To handle such errors, we recommend an exponential backoff mechanism with a limited number of retries.

Only one concurrent request per token is allowed.