remic/guzzlecache

Laravel 5 package for caching Guzzle's GET requests.

v0.2 2016-02-03 08:13 UTC

This package is not auto-updated.

Last update: 2024-11-23 16:26:31 UTC


README

#Guzzle Cache Laravel 5 Package

GuzzleCache is a simple wrapper around the GuzzleHttp library, aimed at optimizing API consuming applications by intercepting GET request and storing/retrieving responses from the Laravel's cache engine.

##Installation

Grab the package with composer :


    composer require remic/guzzlecache:~0.2

##Configuration

The GuzzleCache package works both with Laravel 5 and Lumen, but the configuration process is different.

###Laravel

In Laravel, you need to register the packages service provider into your config/app.php configuration file :

    Remic\GuzzleCache\GuzzleCacheServiceProvider::class, 

If you're using facades, add this line to the corresponding section in config/app.php :

    'GuzzleCache'   => Remic\GuzzleCache\Facades\GuzzleCache::class,

GuzzleCache come shipped with a default configuration file, if you wish to override these defaults, you have to publish the configuration file :


    artisan vendor:publish
    

###Lumen

In Lumen, you need to register the package's service provider into the bootstrap/app.php file :

    $app->register(Remic\GuzzleCache\GuzzleCacheServiceProvider::class);

If you wish to use the GuzzleCache facade, first make sure $app->withFacades(); is uncommented in bootstrap/app.php, then add the following class alias :

    class_alias(Remic\GuzzleCache\Facades\GuzzleCache::class, 'GuzzleCache');

In Lumen, the configuration is handled via the .env file at the root of the project. Here are the default values used by GuzzleCache. If you wish to modify these, just copy and paste these to your .env file :


GUZZLECACHE_LIFETIME=60
GUZZLECACHE_STORE=
GUZZLECACHE_PREFIX=guzzlecache_

##Usage

From your L5 application, call:

$client = GuzzleCache::client(['base_url' => 'http://httpbin.org']);

$res = $client->get('/');

echo $res->getStatusCode();

Here, the $client object is an instance of Guzzle client. You can refer to Guzzle Documentation for more details.

###Specifying a custom lifetime

You can specify an optionnal lifetime when requesting a Guzzle client, that will override the defaults set in GuzzleCache config, for all request made with the object :

// Store all the request made with $client for 15 minutes
$client = GuzzleCache::client(['base_url' => 'http://httpbin.org'], 15); 

##License

MIT