shivella / laravel-bitly
Laravel package for generating bitly url
Installs: 594 422
Dependents: 1
Suggesters: 0
Security: 0
Stars: 74
Watchers: 2
Forks: 27
Open Issues: 1
Requires
- php: >=7.1
- ext-json: *
- guzzlehttp/guzzle: ~6.0 || ^7.0.1 || ^7.1 || ^7.2 || ^7.3 || ^7.4 || ^7.5
- illuminate/support: ^5.8 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0
Requires (Dev)
- phpunit/phpunit: ^9.5 || ^10.5
- symfony/http-foundation: ^5.0
README
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.