PHP
Software Development Kit for all PHP platforms
The SDK is mostly generated from the OpenAPI specification. You can read the API documentation here: https://cloud.squidex.io/api/docs.
This means that the API is fully covered, including all endpoints used by the frontend. You can also use the SDK to create and configure Apps, schemas and rules.
Use this SDK in your PHP application to integrate with Squidex CMS.
compose install @squidex/squidex
The
SquidexClient
is the main entry point for the SDK. It provides the properties for all endpoints.You can instantiate the client using the following code snippet:
use Squidex\Client\Configuration;
use Squidex\Client\SquidexClient;
require_once __DIR__ . '/../vendor/autoload.php';
$config = new Configuration();
$config->setClientId('client-id');
$config->setClientSecret('client-secret');
$config->setAppName('my-app');
$config->setHost('https://cloud.squidex.io');
$client = new SquidexClient($config);
The
host
parameter is optional if you are using Squidex Cloud.In this article, we will cover some of the important configuration values only. Have a look at the source code for all available options:
https://github.com/Squidex/sdk-php/blob/main/lib/Configuration.php
Configure a timeout in seconds to cancel unresponsive requests.
$config = new Configuration();
...
$config->setTimeout(60.0);
The default timeout is 30 seconds.
The SDK uses the client ID and the client secret to acquire a bearer token, and handles invalidation and expiration automatically. By default the token is stored inside the client and therefore a new token is acquired when the client is cleaned by the garbage collector. However, one can define where the token is stored.
$config = new Configuration();
...
$config->setTokenStore(new MyTokenStore());
By default the certificates are validated. But for test environments it might be necessary to connect to instances with self signed certificates only. Therefore we have introduced an option to ignore the certificate chain:
$config = new Configuration();
...
$config->setIgnoreCertificates(true);
To use the client you have to use the correct property.
For example, to create a schema use the
schemas
property.$id = uniqid();
$field = new UpsertSchemaFieldDto();
$field->setName('field1');
$field->setProperties(new StringFieldPropertiesDto());
$request = new CreateSchemaDto();
$request->setName("schema-$id");
$request->setIsPublished(true);
$request->setFields([$field]);
$createdSchema = $this->client->schemas()->postSchema($request);
In order to work with contents, use the
contents
property.$value = uniqid();
$createdContent = $this->client->contents()->postContent(static::$schema->getName(), [
'field1' => [
'iv' => $value
]
]);
The SDK uses exceptions for error handling.
Refer to the code snippet below for an example:
try {
$request = new CreateAppDto();
$request->setName($appName);
$client->getClient()->apps()->postApp($request);
} catch (ApiException $e) {
if ($e->getCode() == 400) {
echo "App probably already exists.\n";
} else {
throw $e;
}
}
Last modified 7d ago