Skip to content

sunxyw/unify-shorten

Repository files navigation

Unify Shorten - Make all URL Shorteners together

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

This is a package that helps you quickly access various short link services, which you can use to make your app support short links provided by different short link services. From full disclosure, to requiring registration, and even paid services.

Installation

You can install the package via composer:

composer require sunxyw/unify-shorten

You can publish the config file with (it should be published automatically):

php artisan vendor:publish --tag="unify-shorten-config"

Usage

// using Facade
use Sunxyw\Shorten\Facades\Shorten;
Shorten::shorten('AWESOME URL HERE'); // using default provider
Shorten::provider('cuttly')->shorten('AWESOME URL HERE WITH CUTTLY'); // using cuttly provider

// using helper function
shorten('AWESOME URL HERE'); // using default provider

// using Shorten class
use Sunxyw\Shorten\Shorten;
app(Shorten::class)->shorten('AWESOME URL HERE'); // using default provider
app(Shorten::class)->provider('cuttly')->shorten('AWESOME URL HERE WITH CUTTLY'); // using cuttly provider
app(Shorten::class)->gotiny->shorten('AWESOME URL HERE WITH GOTINY'); // using gotiny provider (using magic property)

All the methods above will return the shortened URL.

Supported Providers

API Auth HTTPS CORS
1pt No Yes Yes
CleanURI No Yes Yes
Cutt.ly apiKey Yes Unknown
GoTiny No Yes Yes
Firebase apiKey Yes Yes

If you have more providers that you would like supported, please contact me in Issues. For paid providers, it would be even better if you could provide test credentials.

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

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