Code review at scale is broken. Here’s how Augment Code is fixing it.

Laravel Cloudflare Cache

yediyuz/laravel-cloudflare-cache image

Laravel Cloudflare Cache stats

Downloads
42
Stars
68
Open Issues
0
Forks
0

View on GitHub →

laravel-cloudflare-cache

Package Image

Laravel Cloudflare Cache

Test Status Latest Release License

You can serve millions of requests with this package. This package provides cacheable routes for Cloudflare. Thanks to Cloudflare, your static pages are served efficiently, reducing the load on your servers if they are cached for the TTL (Time to Live) duration. You can purge the cache whenever you need with this package.

Installation

You can install the package via composer:

composer require yediyuz/laravel-cloudflare-cache

You can publish the config file with:

php artisan vendor:publish --tag="cloudflare-cache-config"

Add environment variables to .env file

CLOUDFLARE_CACHE_EMAIL=info@example.com #Cloudflare account email address
CLOUDFLARE_CACHE_KEY=XXXXXXX #Cloudflare API_KEY
CLOUDFLARE_CACHE_IDENTIFIER=XXXXXXX #ZONE_ID
CLOUDFLARE_DEFAULT_CACHE_TTL=600 #10 minutes
CLOUDFLARE_CACHE_DEBUG=false

Add Rule on Cloudflare

To active caching on static pages, you need to add page rule OR cache rule on Cloudflare.

For page rule:

  • If the URL matches: www.example.com/*
  • Setting: Cache Level
  • Value: Cache Everything

For the cache rule:

  • Field: hostname
  • Operator: equals
  • Value: example.com
  • Then: Eligible for cache

https://developers.cloudflare.com/cache/how-to/cache-rules/create-dashboard/

Usage

Define routes to cache

You can use cache groups for your static contents.

Route::cache()->group(function () {
Route::get('/content', function () {
return 'content';
});
});

You can use cache tags, so you can clear your caches easily. Specify custom ttl for expire time in seconds. When you do not pass ttl, it will use default ttl given in the config.

Route::cache(tags: ['tag1', 'tag2'], ttl: 600)->group(function () {
Route::get('/content_with_tags', function () {
return 'content';
});
});
 
Route::cache(tags: ['staticPages'])->group(function () {
//
});

[!WARNING]
Be careful caching your routes! Do not cache your dynamic pages such as admin panel or form based pages!

Clear Cache

Purges everything

https://developers.cloudflare.com/cache/how-to/purge-cache/purge-everything/

CloudflareCache::purgeEverything()

Purges by urls

https://developers.cloudflare.com/cache/how-to/purge-cache/purge-by-single-file/

CloudflareCache::purgeByUrls([
'https://example.com/hello',
])

Purges by prefixes (Enterprise only)

https://developers.cloudflare.com/cache/how-to/purge-cache/purge_by_prefix/

CloudflareCache::purgeByPrefixes([
'www.example.com/foo',
])

Purges by tags (Enterprise only)

https://developers.cloudflare.com/cache/how-to/purge-cache/purge-by-tags/

CloudflareCache::purgeByTags([
'staticPages',
])

Purges by hostname (Enterprise only)

https://developers.cloudflare.com/cache/how-to/purge-cache/purge-by-hostname/

CloudflareCache::purgeByHosts([
'www.example.com',
'images.example.com',
])

Post update example to clear cache

<?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');
}
}

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you've found a bug regarding security please mail security@yediyuz.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.


Yediyuz Laravel Cloudflare Cache Related Articles

Serve Markdown Versions of Your Laravel Pages to AI Agents image

Serve Markdown Versions of Your Laravel Pages to AI Agents

Read article
Speeding Up Laravel News With Cloudflare image

Speeding Up Laravel News With Cloudflare

Read article
Fast Laravel Course Launch image

Fast Laravel Course Launch

Read article
Geocoding with Cloudflare image

Geocoding with Cloudflare

Read article
Separate your Cloudflare page cache with a middleware group image

Separate your Cloudflare page cache with a middleware group

Read article
Cloudflare Turnstile versus CSRF tokens image

Cloudflare Turnstile versus CSRF tokens

Read article
Laravel Cloud logo

Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Laravel Cloud
Kirschbaum logo

Kirschbaum

Providing innovation and stability to ensure your web application succeeds.

Kirschbaum
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit: Laravel SaaS Starter Kit

SaaSykit is a Multi-tenant Laravel SaaS Starter Kit that comes with all features required to run a modern SaaS. Payments, Beautiful Checkout, Admin Panel, User dashboard, Auth, Ready Components, Stats, Blog, Docs and more.

SaaSykit: Laravel SaaS Starter Kit
Tinkerwell logo

Tinkerwell

The must-have code runner for Laravel developers. Tinker with AI, autocompletion and instant feedback on local and production environments.

Tinkerwell
Acquaint Softtech logo

Acquaint Softtech

Acquaint Softtech offers AI-ready Laravel developers who onboard in 48 hours at $3000/Month with no lengthy sales process and a 100 percent money-back guarantee.

Acquaint Softtech
Shift logo

Shift

Running an old Laravel version? Instant, automated Laravel upgrades and code modernization to keep your applications fresh.

Shift