Concise your urls via extern providers :)
PHP
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
spec
src
.editorconfig
.gitignore
.scrutinizer.yml
.travis.yml
CHANGELOG.md
CONTRIBUTING.md
LICENSE
README.md
composer.json
phpspec.yml.ci
phpspec.yml.dist

README.md

Concise

Latest Version Software License Build Status Code Coverage Quality Score HHVM Status Total Downloads SensioLabsInsight

Concise your urls via extern providers :)

Install

Via Composer

$ composer require toin0u/concise

Usage

Simple example using Google provider:

use Concise\Concise;
use Concise\Provider\Google;
use Ivory\HttpAdapter\GuzzleHttpAdapter;

$concise = new Concise(new Google(new GuzzleHttpAdapter));

// Returns the shortened URL
$concise->shorten('http://any.url');

// Returns the expanded URL
$concise->expand('http://short.ly/1234');

For full list of available adapters check the official documentation.

Currently supported providers:

  • Bitly
  • Google
  • Tinycc

Provider chaining

You can shorten a URL using multiple providers at once.

Make sure to add the Providers in the chain in the SAME ORDER for both shortening and expanding. Expanding is automatically done in a reversed order.

use Concise\Concise;
use Concise\Provider\Chain;

$chain = new Chain;

$chain->addProvider(/* add a Provider instance here */);
$chain->addProvider(/* add another Provider instance here */);

$concise = new Concise($chain);

Caching

When working with lots of URLs it probably makes sense to cache already shortened/expanded URLs. This way you can avoid unnecessary HTTP requests.

To use caching install Stash first:

$ composer require tedivm/stash
use Concise\Concise;
use Concise\Provider\Cache;
use Stash\Pool;

$cache = new Cache(/* add a Provider instance here */, new Pool);
$concise = new Concise($cache);

Testing

$ phpspec run

Contributing

Please see CONTRIBUTING for details.

Credits

License

The MIT License (MIT). Please see License File for more information.