codeinwp / optimole-sdk
SDK for Optimole cloud-based image optimization service
Requires
- php: >=7.4
- ext-json: *
- symfony/polyfill-php80: ^1.29
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- guzzlehttp/guzzle: ^7.0
- php-mock/php-mock-phpunit: ^2.10
- php-stubs/wordpress-stubs: ^6.5
- phpstan/phpstan: ^1.0
- phpunit/phpunit: ^9.6
- szepeviktor/phpstan-wordpress: ^1.3
Suggests
- guzzlehttp/guzzle: Use the Guzzle HTTP client to make requests to the API
README
The Optimole PHP SDK makes it easy for PHP developers to integrate Optimole cloud-based image optimization service in their PHP project.
Requirements
- PHP >= 7.4
Installation
Install the Optimole PHP SDK in your project using composer:
$ composer require codeinwp/optimole-sdk
Usage
To begin, you need to create an account on Optimole and get your API key.
Initializing the SDK
You can then initialize the SDK with your API key using the Optimole
facade:
use Optimole\Sdk\Optimole; Optimole::init('your-api-key', $options);
The second argument of the init
method is optional. It allows you to pass options to the SDK that can be used to configure it. These options are:
base_domain
: The base domain to connect to Optimole's API. Default isi.optimole.com
.cache_buster
: A string value that will be appended to the URL of the optimized assets to bust Optimole's cache.dashboard_api_url
: The URL of the dashboard API. Default ishttps://dashboard.optimole.com/api
.dashboard_api_key
: The API key to use for the dashboard API.upload_api_credentials
: An array with the credentials to use for the upload API. The array should contain the keysuserKey
andsecret
. The default is empty and the SDK will use the API key provided in theinit
method to fetch them from the dashboard API.upload_api_url
: The URL of the upload API. Default ishttps://generateurls-prod.i.optimole.com/upload
.
Optimizing Images and Assets
The Optimole
facade is your starting point for creating optimized images or other assets. You can control the optimization properties using the fluent interface provided by the SDK. Here's an example of how to optimize an image by changing its quality and cropping it:
use Optimole\Sdk\Optimole; $image = Optimole::image('https://example.com/image.jpg')->quality(80)->resize('crop');
You can get the optimized image URL using the getUrl
method or casting the object to a string:
echo $image->getUrl(); echo (string) $image;
Offloading Images to Optimole
The SDK also provides a way to offload images to Optimole. This is useful when you want to serve images from Optimole's content delivery network. Here's an example of how to offload an image:
use Optimole\Sdk\Optimole; $imageId = Optimole::offload()->uploadImage('path/to/image.jpg', 'https://url/to/image.jpg');
This will upload the image to Optimole and return the image ID. You can then use this image ID to interact with the image. For example, you can get the URL of the offloaded image:
use Optimole\Sdk\Optimole; $imageUrl = Optimole::offload()->getImageUrl($imageId);
Contributing
Install dependencies using composer and run the test suite:
$ composer install $ vendor/bin/phpunit