Package Data | |
---|---|
Maintainer Username: | Shawnley |
Maintainer Contact: | barryvdh@gmail.com (Barry vd. Heuvel) |
Package Create Date: | 2015-06-29 |
Package Last Update: | 2015-06-29 |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-11-15 03:00:27 |
Package Statistics | |
---|---|
Total Downloads: | 739 |
Monthly Downloads: | 1 |
Daily Downloads: | 0 |
Total Stars: | 0 |
Total Watchers: | 1 |
Total Forks: | 0 |
Total Open Issues: | 0 |
Laravel 5 can use HttpKernelInterface Middlewares, so also HttpCache. This package provides a simple ServiceProvider to get you started with HttpCache.
First, require this package in composer.json and run composer update
"barryvdh/laravel-httpcache": "0.2.x@dev"
After updating, add the ServiceProvider to the array of providers in app/config/app.php
'Barryvdh\HttpCache\ServiceProvider',
You can now add the Middleware to your Kernel:
'Barryvdh\HttpCache\Middleware\CacheRequests',
Caching is now enabled, for public responses. Just set the Ttl or MaxSharedAge
Route::get('my-page', function(){
return Response::make('Hello!')->setTtl(60); // Cache 1 minute
});
You can also define a filter.
Route::filter('cache', function($route, $request, $response, $age=60){
$response->setTtl($age);
});
Route::get('cached', array('after' => 'cache:30', function(){
return 'I am cached 30 seconds!';
}));
Publish the config to change some options (cache dir, default ttl, etc) or enable ESI.
$ php artisan vendor:publish --provider="Barryvdh\HttpCache\ServiceProvider"
Enable ESI in your config file and add the Esi Middleware to your Kernel:
'Barryvdh\HttpCache\Middleware\ParseEsi',
You can now define ESI includes in your layouts.
<esi:include src="<?= url('partial/page') ?>"/>
This will render partial/page, with it's own TTL. The rest of the page will remain cached (using it's own TTL)
You can purge a single url or just delete the entire cache directory:
App::make('http_cache.store')->purge($url);
\File::cleanDirectory(app('http_cache.cache_dir'));
Or use the Artisan httpcache:clear
command
$ php artisan httpcache:clear
For more information, read the Docs on Symfony HttpCache