tousanco / php-zaya
using this package you can easily implement the zaya.io link shortener in your php application.
v1.1.24
2024-01-02 12:32 UTC
Requires
- php: >=5.6
- guzzlehttp/guzzle: ^6.5|^7.7
Requires (Dev)
- phpunit/phpunit: ^5.0|^6.0|^7.0|^8.0|^9.0
- symfony/var-dumper: 3.*|4.*|5.*
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
using this package you can easily implement the Zaya link shortener in your php application.
Installation
You can install the package via composer:
composer require tousanco/php-zaya
Usage
First you need to get your API key from Zaya
Instantiate
use Tousanco\PhpZaya\Link; use GuzzleHttp\Client; $apiKey = 'your api key'; // available classes: Link, Space, Domain, Account, Stats. $instance = Link::instance($apiKey); // OR $client = new Client(); $instance = (new Link($client, $apiKey));
Links
use Tousanco\PhpZaya\Link; $instanceLink = Link::instance($apiKey); $listParams = [ // All options nullable // search (string) 'search' => 'search key', // by (in:title,alias,url) null for all. 'by' => 'title', // ids comma separated (string) 'ids' => '1,2,3,4,5', /* * status (int|in:0,1,2,3,4,5,6) * 0 or null for all * 1 for active * 2 for pending * 3 for deactivate * 4 for suspended * 5 for expired */ 'status' => 1, // (int) space-id 'space' => 1, // (int) domain-id 'domain' => 1, // favorites (bool|in:1) null for false 'favorites' => 1, /* * sort (string|in:desc,asc,max,min) * max for maximum clicks * min for minimum clicks */ 'sort' => 'desc', ]; $links = $instanceLink->all($listParams); $createOrUpdateParams = [ // All options nullable 'alias' => 'string', 'password' => 'string', 'space' => 'int', 'domain' => 'int', 'disabled' => 'int', 'public' => 'int', 'description' => 'string', 'expiration_url' => 'url', 'expiration_date' => 'Y-m-d', 'expiration_time' => 'HH:MM', 'expiration_clicks' => 'int', ]; $link = $instanceLink->create('https://example.com', $createOrUpdateParams); $linkId = 1; $link = $instanceLink->details($linkId); $link = $instanceLink->update($linkId, $createOrUpdateParams); $instanceLink->delete($linkId);
Spaces
use Tousanco\PhpZaya\Space; $instanceSpace = Space::instance($apiKey); $listParams = [ // All options nullable 'search' => 'string key', // sort (string|in:desc,asc) 'sort' => 'desc', ]; $spaces = $instanceSpace->all($listParams); $params = ['name' => 'sample space', 'color' => '#fff']; $space = $instanceSpace->create($params); $spaceId = 1; $space = $instanceSpace->details($spaceId); $space = $instanceSpace->update($spaceId, $params); $instanceSpace->delete($spaceId);
Domains
use Tousanco\PhpZaya\Domain; $instanceDomain = Domain::instance($apiKey); $listParams = [ // All options nullable 'search' => 'string key', // sort (string|in:desc,asc) 'sort' => 'desc', ]; $domains = $instanceDomain->all($listParams); $params = [ 'name' => 'your-domain.com', // index_page and not_found_page nullable. 'index_page' => 'url', 'not_found_page' => 'url', ]; $domain = $instanceDomain->create($params); $domainId = 1; $domain = $instanceDomain->details($domainId); // You cannot update the domain name $domain = $instanceDomain->update($domainId, $params); $instanceDomain->delete($domainId);
Stats
use Tousanco\PhpZaya\Stats; $instanceStats = Stats::instance($apiKey); $linkId = 1; // The default value is the current day's $params = ['from' => 'Y-m-d H:i:s', 'to' => 'Y-m-d H:i:s']; $total = $instanceStats->total($linkId, $params); $clicks = $instanceStats->clicks($linkId, $params); $referrers = $instanceStats->referrers($linkId, $params); $countries = $instanceStats->countries($linkId, $params); $languages = $instanceStats->languages($linkId, $params); $browsers = $instanceStats->browsers($linkId, $params); $devices = $instanceStats->devices($linkId, $params); $operatingSystems = $instanceStats->operatingSystems($linkId, $params);
Account
use Tousanco\PhpZaya\Account; $accountInstance = Account::instance($apiKey); $account = $accountInstance->details();
Timeout
You can set timeout in two ways:
- When you create an object from the zaya class
- When you call the methods of sending the request
$baseUrl = 'https://zaya.io/api/v1'; $timeout = 5; $instance = Link::instance($apiKey, $baseUrl, $timeout);
$timeout = 5; $linkId = 22; $instance->details($linkId, $timeout);
Documentation
See the documentation for more details.