Guzzle 7 + Guzzle-cache-middleware

Viewed 311

I'm using Guzzle 7 to grab content from an external API with basic authentication. It works fine. Now I'd like to integrate cache management. So i've tried to use this plugin: [Guzzle-cache-middleware][1] and I can't make it working correctly. I can get API response and my desired content but the cache directory is not populated. I've searched all around the web but I can't figure this out. Could you please tell me how to solve this? Here is my code:

$userName = "xxxxxxx";
$password = "yyyyyyyyyyy";
require_once './vendor/autoload.php';

use GuzzleHttp\Client;
use GuzzleHttp\HandlerStack;
use Kevinrob\GuzzleCache\CacheMiddleware;
use Kevinrob\GuzzleCache\Strategy\PublicCacheStrategy;

$stack = HandlerStack::create();
$cache = new CacheMiddleware();
$stack->push($cache, '/home/xxxx/xxxxx/guzzle2/cache');
$client = new Client([
    'handler'   => $stack,
    'base_uri'  => 'https://api.xxxxx.com/xxx/',
    "timeout"   => 30.0,
]);
$json = $client->get('zzzzzz.json', [
            'auth' => [
                $userName, 
                $password
            ]
]);
var_dump($json->getHeaderLine(CacheMiddleware::HEADER_CACHE_INFO));

Output:

string(4) "MISS"

So API result is different from cache. But headers params (ETag and Last-Modified) are still unchanged and my cache folder is still blank.

Thank you for your help!

0 Answers
Related