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.