tousanco / php-zaya
using this package you can easily implement the zaya.io link shortener in your php application.
Installs: 2 308
Dependents: 1
Suggesters: 0
Security: 0
Stars: 3
Watchers: 1
Forks: 0
Open Issues: 0
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.*
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.