Introduction
Learn how to integrate Dub with PHP.
1. Prerequisites
To follow this guide, you will need to:
2. Install and initialize the Dub PHP SDK
Install
To install the Dub PHP SDK, run the following command:
composer require dub/dub-php
Initialize
Initialize the Dub PHP SDK by creating a new instance of the Dub
class.
declare(strict_types=1);
require 'vendor/autoload.php';
use Dub\Dub;
use Dub\Models\Components;
$security = new Components\Security('DUB_API_KEY');
$dub = Dub::builder()->setSecurity($security->token)->build();
3. Create link
Let’s create a short link using the Dub PHP SDK.
use Dub\Models\Operations;
try {
$request = new Operations\CreateLinkRequestBody(
url: 'https://google.com',
);
$response = $dub->links->create($request);
if ($response->linkSchema !== null) {
// handle response
}
} catch (Throwable $e) {
// handle exception
}
Optionally, you can also pass an externalId
field which is a unique identifier for the link in your own database to associate it with the link in Dub’s system.
use Dub\Models\Operations;
try {
$request = new Operations\CreateLinkRequestBody(
url: 'https://google.com',
externalId: '12345',
);
$response = $dub->links->create($request);
if ($response->linkSchema !== null) {
// handle response
}
} catch (Throwable $e) {
// handle exception
}
This will let you easily update the link or retrieve analytics for it later on using the externalId
instead of the Dub linkId
.
4. Upsert link
Dub PHP SDK provides a method to upsert a link – where an existing link is updated if it exists, or a new link is created if it doesn’t. so you don’t have to worry about checking if the link already exists.
use Dub\Models\Operations;
try {
$request = new Operations\UpsertLinkRequestBody(
url: 'https://google.com',
);
$response = $dub->links->upsert($request);
if ($response->linkSchema !== null) {
// handle response
}
} catch (Throwable $e) {
// handle exception
}
This way, you won’t have to worry about checking if the link already exists when you’re creating it.
5. Update link
Let’s update an existing link using the Dub PHP SDK.
You can do that in two ways:
- Using the link’s
linkId
in Dub’s system. - Using the link’s
externalId
in your own database (prefixed with ext_).
use Dub\Models\Operations;
try {
$request = new Operations\UpdateLinkRequest();
$request->linkId = 'cly2p8onm000cym8200nfay7l';
$request->requestBody = new Operations\UpdateLinkRequestBody();
$request->requestBody->url = 'https://google.us';
$response = $dub->links->update($request);
if ($response->linkSchema !== null) {
echo $response->linkSchema->shortLink;
}
} catch (Throwable $e) {
// handle exception
}
6. Retrieve analytics for link
Let’s retrieve analytics for a link using the Dub PHP SDK.
use Dub\Models\Operations;
try {
$request = new Operations\RetrieveAnalyticsRequest();
$request->linkId = 'clmnr6jcc0005l308q9v56uz1';
$request->interval = Operations\Interval::SevenD;
$request->groupBy = Operations\GroupBy::Timeseries;
$response = $dub->analytics->retrieve($request);
if ($response->oneOf !== null) {
// Handle the response
print_r($response->oneOf);
}
} catch (Throwable $e) {
// handle exception
}