juliangut / cacheware
PSR7 cache headers management middleware
Requires
- php: >=5.5
- psr/http-message: ^1.0
- symfony/polyfill-php56: ^1.0
- symfony/polyfill-php70: ^1.0
Requires (Dev)
- phpmd/phpmd: ^2.2
- phpunit/phpunit: ^4.5|^5.0
- sebastian/phpcpd: ^2.0
- sensiolabs/security-checker: ^3.0
- squizlabs/php_codesniffer: ^2.0
- zendframework/zend-diactoros: ^1.3
This package is auto-updated.
Last update: 2024-12-15 11:42:42 UTC
README
CacheWare
A PSR7 cache headers management middleware.
This middleware must be run before session_start
has been called so it can prevent PHP session mechanism from automatically send any kind of header to the client (including session cookie and caching).
You can use this middleware with juliangut/sessionware which will automatically handle session management.
Installation
Composer
composer require juliangut/cacheware
Usage
require 'vendor/autoload.php'; use \Jgut\Middleware\CacheWare $configuration = [ 'limiter' => 'private', 'expire' => 1800, // 30 minutes ]; $cacheMiddleware = new CacheWare($configuration); // Get $request and $response from PSR7 implementation $request = new Request(); $response = new Response(); $response = $cacheMiddleware($request, $response, function() { }); // Response has corresponding cache headers for private cache
Integrated on a Middleware workflow:
require 'vendor/autoload.php'; use \Jgut\Middleware\CacheWare $app = new \YourMiddlewareAwareApplication(); $app->addMiddleware(new CacheWare(['limiter' => 'nocache'])); $app->run();
Config
$cacheMiddleware = new CacheWare([ 'limiter' => null 'expire' => 180, ]);
limiter
Selects cache limiter type. It's values can be public
, private
, private_no_expire
or nocache
. If not provided value defined in ini_set session.cache_limiter
will be automatically used (normally 'nocache').
Cacheware class has CACHE_* constants for convenience.
If you want to completely disable cache headers give limiter a value of null
.
expire
Sets the time in seconds for caching. If not provided value defined in ini_set session.cache_expire
will be automatically used (normally 180). This setting is ignore when using nocache
limiter.
Contributing
Found a bug or have a feature request? Please open a new issue. Have a look at existing issues before.
See file CONTRIBUTING.md
License
See file LICENSE included with the source code for a copy of the license terms.