Skip to content
An async HTTP cache for Amp's HTTP client.
PHP
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples
src
test
.editorconfig
.gitignore
.php_cs.dist
.travis.yml
LICENSE
README.md
composer-require-check.json
composer.json
phpunit.xml.dist

README.md

http-client-cache

Build Status CoverageStatus License

This package provides an HTTP cache in form of an ApplicationInterceptor for Amp's HTTP client based on RFC 7234.

Features

  • Private cache (SingleUserCache)
  • Automatic vary header support
  • Caching pushed responses

Planned Features

  • Shared cache
  • Conditional requests

Installation

This package can be installed as a Composer dependency.

composer require amphp/http-client-cache

Usage

Currently, only a SingleUserCache is provided. Therefore it is unsafe to use a single instance for multiple users, e.g. different access tokens.

use Amp\Cache\FileCache;
use Amp\Http\Client\HttpClientBuilder;
use Amp\Http\Client\Cache\SingleUserCache;
use Amp\Sync\LocalKeyedMutex;

$cache = new FileCache(__DIR__, new LocalKeyedMutex);

$client = (new HttpClientBuilder)
    ->intercept(new SingleUserCache($cache, $logger))
    ->build();

Examples

More extensive code examples reside in the examples directory.

Versioning

amphp/http-client-cache follows the semver semantic versioning specification like all other amphp packages.

Security

If you discover any security related issues, please email me@kelunik.com instead of using the issue tracker.

License

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

You can’t perform that action at this time.