squidex / squidex
Client SDK for Squidex Headless CMS
Installs: 1 124
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 1
Requires
- php: ^7.4 || ^8.0
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/guzzle: ^7.3
- guzzlehttp/psr7: ^1.7 || ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.5
- phpunit/phpunit: ^8.0 || ^9.0
This package is auto-updated.
Last update: 2024-12-03 06:53:03 UTC
README
The Squidex PHP library provides access to the Squidex API from JavaScript and TypeScript. Can be used in node and in the browser.
Requires PHP 7 or higher.
Status
Documentation
API reference documentation is available here.
Installation
composer install @squidex/squidex
Usage
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://your.squidex-deployment'); $client = new SquidexClient($config); $response = $client->rules()->runRule("rule-id", true); echo "Received response from Squidex!\n$response\n";
Handling errors
When the API returns a non-success status code (4xx or 5xx response), a subclass of ApiException will be thrown:
use Squidex\Client\ApiException; try { $response = $client->rules()->runRule("rule-id", true); } catch (err) { if (ApiException $) { echo $e->getMessage(); } }
Generation Config
To generate the config you have to execute the following steps.
- Run a Squidex version locally.
- Run the
/api/docs
URL to get the OpenAPI spec. - Copy the OpenAPI spec to this repository.
- Run the generator:
docker run --rm -v ${PWD}:/local openapitools/openapi-generator-cli generate -i /local/openapi.json -g php --template-dir /local/templates -o /local/ -c /local/openapi-config.yml
Releases
To create a new release, just create a tag. Packagist will use this tag to calculate the version.
Contributing
While we value open-source contributions to this SDK, this library is generated programmatically. Additions made directly to this library would have to be moved over to our generation code, otherwise they would be overwritten upon the next generated release. Feel free to open a PR as a proof of concept, but know that we will not be able to merge it as-is. We suggest opening an issue first to discuss with us!
On the other hand, contributions to the README are always very welcome!