Cache Routes with Cloudflare in Laravel
Published on by Paul Redmond
The Cloudflare Cache package for Laravel provides cacheable routes, allowing you to serve millions of requests for static pages efficiently. You can define a group of cacheable routes with the Laravel router, including tags. This package makes it easy to start caching with Cloudflare using the Route::cache()
method:
Route::cache(tags: ['tag1', 'tag2'], ttl: 600)->group(function () { Route::get('/content_with_tags', function () { return 'content'; });}); Route::cache(tags: ['staticPages'])->group(function () { //});
This package gives you APIs to purge all content, specific URLs, prefixes/tagged URLs (enterprise), and more. As an example, let's say you want to cache articles (Posts) with Cloudflare and purge the cache whenever the article is updated:
<?php namespace App\Http\Controllers; use App\Http\Requests\UpdatePostRequest;use App\Models\Post;use Yediyuz\CloudflareCache\Facades\CloudflareCache; class PostController extends Controller{ public function update(Post $post, UpdatePostRequest $request) { $post->update($request->validated()); CloudflareCache::purgeByUrls([ route('post.show', $post->id) ]); return back()->with('message', 'Post updated and url cache purged'); }
You can learn more about this package, get full installation instructions, and view the source code on GitHub.