URL shortening the easy way.

v1.2.0 2015-12-23 10:18 UTC

This package is not auto-updated.

Last update: 2024-04-13 15:01:15 UTC


Latest Stable Version Latest Unstable Version Total Downloads Build Status Scrutinizer Code Quality License

vinelab/url-shortener is a PHP framework agnostic Package that makes it easy to shorten your URL's, with your favourite URL Shortening provider such as (,,

The URL Shortening Providers are online services that takes long URLs and squeezes them into fewer characters to make the link easier to share, tweet, or send by email.

The package requires PHP 5.4+ and comes bundled with a Laravel 5 Facade and a Service Provider to simplify the optional framework integration and follows the FIG standard PSR-4 to ensure a high level of interoperability between shared PHP code and is fully unit-tested.



The recommended way to install this package is via Composer.

Via Composer

A. Run this composer command:

	composer require vinelab/url-shortener:*

B. Or manually add the package to your composer.json and run composer update.

        "require": {
            "vinelab/url-shortener": "*"


url-shortener is framework agnostic and as such can be integrated easily natively or with your favorite framework.


The url-shortener package has optional support for Laravel 5 and it comes bundled with a Service Provider for easier integration.

After you have installed the package correctly, just follow the instructions.

.1. Register the service provider in your config/app.php:

    'providers' => array(

The service provider will automatically alias the Vinelab\UrlShortener\Shorten class, so you can easily use the Shorten facade anywhere in your app.

.2. Publish the configuration file:

php artisan vendor:publish --provider ='Vinelab\UrlShortener\UrlShortenerServiceProvider'


.1. Open url-shortener.php and select your default provider:

	'default' => 'bitly',

.2. Then add your provider token:

        'bitly' => [
            'domain' => '',
            'endpoint' => '/v3/shorten',
            'token' => 'YOUR-TOKEN-HERE',

Note: It's very recommended to not add your token (any sensetive data) to the config file instead reference it to a .env variable.

And to do so:

  1. replace the 'token' => 'YOUR-TOKEN-HERE', with 'token' => env('BITLY_TOKEN'),

  2. open your .env file and add the token variable there with the token value: BITLY_TOKEN=YOUR-TOKEN-HERE.

  3. add the variable BITLY_TOKEN= to the .env.example for other developers.


With Laravel:

The easiest way is to use it is by the Shorten facade.

$long_url = 'http://testing.tst/something/12345/something-else/54321';

$short_url = Shorten\Shorten::url($long_url); // returns the short version of the long_url as a string


To run the tests, run the following command from the project folder.

$ ./vendor/bin/phpunit


Support new provider

To add support for a new URL shortening provider:

  1. write a driver for your URL Shortener service. check the Bitly driver Vinelab\UrlShortener\Drivers\Bitly class.
  2. add you driver configuration to the config file.
  3. write tests for your drvier.
  4. update the README file
  5. check out the Contribution Guide for general details.


On Github


If you discover any security related issues, please email instead of using the issue tracker.



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