shivella/laravel-bitly
Laravel Bitly Package
A laravel package for generating Bitly short URLs.
For more information see Bitly
Requirements
Laravel 5.1 or later
Installation
Installation is a quick 3 step process:
- Download laravel-bitly using composer
- Enable the package in app.php
- Configure your Bitly credentials
- (Optional) Configure the package facade
Step 1: Download laravel-bitly using composer
Add shivella/laravel-bitly by running the command:
composer require shivella/laravel-bitly
Step 2: Enable the package in app.php
Register the Service in: config/app.php
Shivella\Bitly\BitlyServiceProvider::class,
Step 3: Configure Bitly credentials
php artisan vendor:publish --provider="Shivella\Bitly\BitlyServiceProvider"
Add this in you .env file
BITLY_ACCESS_TOKEN=your_secret_bitly_access_token
Step 4 (Optional): Configure the package facade
Register the Bitly Facade in: config/app.php
<?php
return [
'aliases' => [
'App' => Illuminate\Support\Facades\App::class,
'Artisan' => Illuminate\Support\Facades\Artisan::class,
'Auth' => Illuminate\Support\Facades\Auth::class,
// ...
'Bitly' => Shivella\Bitly\Facade\Bitly::class,
],
// ...
];
Usage
<?php
$url = app('bitly')->getUrl('https://www.google.com/'); // http://bit.ly/nHcn3
Or if you want to use facade, add this in your class after namespace declaration:
<?php
use Bitly;
Then you can use it directly by calling Bitly:: like:
<?php
$url = Bitly::getUrl('https://www.google.com/'); // http://bit.ly/nHcn3
Testing
In your unit tests you may use BitlyClientFake class instead of regular client.
It will create a fake short URLs using hashing without calling an external REST API, which will speed up your unit tests.
Fake might be setup via DI at your \Tests\TestCase::createApplication() implementation:
<?php
namespace Tests;
use Illuminate\Contracts\Console\Kernel;
use Shivella\Bitly\Testing\BitlyClientFake;
trait CreatesApplication
{
/**
* Creates the application.
*
* @return \Illuminate\Foundation\Application
*/
public function createApplication()
{
$app = require __DIR__.'/../bootstrap/app.php';
$app->make(Kernel::class)->bootstrap();
// swap Bitly client by a fake
$app->singleton('bitly', function () {
return new BitlyClientFake();
});
return $app;
}
}
As an alternative you may use \Shivella\Bitly\Facade\Bitly::fake() method to swap regular client by a fake.
Related Packages
Port to Laravel4 of jbroadway's PHP port of URLify.js from the Django project. T...
Converts URLs and email addresses in text into HTML links its extended from Misd...
Port to Laravel4 of jbroadway's PHP port of URLify.js from the Django project. T...