Package Data | |
---|---|
Maintainer Username: | justb81 |
Maintainer Contact: | br@ipunkt.biz (Bastian Rang (ipunkt Business Solutions)) |
Package Create Date: | 2014-07-25 |
Package Last Update: | 2014-07-28 |
Home Page: | |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-11-23 03:19:30 |
Package Statistics | |
---|---|
Total Downloads: | 86 |
Monthly Downloads: | 2 |
Daily Downloads: | 0 |
Total Stars: | 5 |
Total Watchers: | 5 |
Total Forks: | 1 |
Total Open Issues: | 0 |
This package simplifies caching of static pages in your laravel project. It sends 304 status headers and (if available) static html without running the controller. The configuration ist easy and straight forward using a single route-filter.
Add to your composer.json following lines
"require": {
"ipunkt/laravel-route-cache": "~1.0.0"
}
Run php artisan config:publish ipunkt/laravel-route-cache
Add 'Ipunkt\LaravelRouteCache\LaravelRouteCacheServiceProvider',
to providers
in app/config/app.php
.
Edit config.php
in app/config/packages/ipunkt/laravel-route-cache
to your needs.
Add 'before' => 'cache.before'
to every route you like to cache. The route has to be canonical!, because the filter caches just by extracting the url()
from the Request. (maybe i change that to fullUrl()
)
To outdate a cache, just fire the Event entity.modified
and attach the Request or URL of the modified ressource. You can force that on your browser by attaching the GET-Parameter set in your config as cachebuster
(default is "renew-cache") to the URL.
If the infoheader
config setting is not false
the library adds a Header to the Response to show wether the content came from cache or the controller.
The class Ipunkt\LaravelRouteCache\RouteCache
works out of the box without the filter. You can use it in your controllers
// get RouteCache-Instance
$routecache = \App::make('routecache');
$routecache->setEntityFromRequest($request);
// or
$routecache->setEntityFromUrl($url);
// to remove the cache
$routecache->removeCache()
// to check if the client has a valid (same ETag) Cache
$routecache->checkClientHasValidCache()
// to save a Response to the Cache
$routecache->setCacheFromResponse(Response $response)
// to save string-content to the Cache
$routecache->setCacheFromContent($content)
// to get a saved Response from the Cache
$routecache->getResponseFromCache()
// to get a saved string from the Cache
$routecache->getContentFromCache()
// you can get the ETag for the entity (but you don't need it)
$routecache->getETag()
// you can even set a custom ETag if you like
$routecache->getETag($value)
Feel free to fork and push changes