Download the PHP package aklump/slim-response-cache without Composer
On this page you can find all versions of the php package aklump/slim-response-cache. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download aklump/slim-response-cache
More information about aklump/slim-response-cache
Files in aklump/slim-response-cache
Package slim-response-cache
Short Description Slim middleware for caching responses for subsequent requests.
License BSD-3-Clause
Homepage https://github.com/aklump/slim-response-cache
Informations about the package slim-response-cache
Response Cache Middleware
Summary
This project provides a means of caching responses so that subsequent requests do not pass through the route callbacks. It is helpful if the route callbacks involve expensive calculations to generate content. It is built on the HTTP Caching middleware and should be used instead of that middleware. It ships with a file-based cache storage, but supports other types of caching via \AKlump\Slim\Middleware\ContentCacheInterface
.
Quick Start
$container = $app->getContainer();
$container['cache'] = function () {
return new \Slim\HttpCache\CacheProvider();
};
$container['response_cache'] = function () {
return new \AKlump\Slim\Middleware\FileCache('/path/to/cache/dir');
};
// Register this middleware.
$app->add(new \AKlump\Slim\Middleware\ContentCache($container['cache'], $container['response_cache'], 3600));
Requirements
- The response body must be able to be cast to a string.
Contributing
If you find this project useful... please consider making a donation.
Installation
-
This middleware replaces HTTP Caching therefore you should not add that middleware as shown in those instructions. Do not do the following:
$app->add(new \Slim\HttpCache\Cache('public', 86400));
- However, you will need to register the service provider from that middleware as shown in the Quick Start above.
Advanced Usage
How do I alter the body prior to caching?
If you want to alter the response body content before it is written to cache use the fourth argument callback as shown below, which adds a last modified note
$app->add(new \AKlump\Slim\Middleware\ContentCache(
$container['cache'],
$container['response_cache'],
3600,
function (\DateTime $modified, $html_body) use ($settings) {
return $html_body . sprintf("Last modified: %s', $modified->format('r'));
}
));
How do I use a database for caching content?
You may write your own class that implements \AKlump\Slim\Middleware\ContentCacheInterface
.