laravel-cloudflare maintained by ghostcompiler
Description
Production-ready Laravel SDK for the Cloudflare API v4
Author
Last update
2026/06/17 12:45
(dev-main)
License
Downloads
0
Features
- 100% Endpoint Coverage: Complete implementation of all zones, DNS, Workers, KV, R2, D1, Access, Turnstile, and 30 resource managers.
- Fail-Safe Retries & Backoff: Robust exponential backoff and rate-limit parsing handling
Retry-Afterresponse headers automatically. - Concurrently Pooled Processing: Execute calls asynchronously or concurrently in batches.
- Dynamic Filter Builder: Fluent query-building for filtering, page indexing, and sorting.
- Type-Safe DTOs: Automated data hydration into standard PHP DTO structures.
- Custom Exceptions: Specialized mapping of Cloudflare API status codes and error formats.
Installation
Install the package via Composer:
composer require ghostcompiler/laravel-cloudflare
Publish the configuration file:
php artisan vendor:publish --provider="Vendor\Cloudflare\Providers\CloudflareServiceProvider" --tag="config"
Add your Cloudflare credentials to your .env file:
CLOUDFLARE_TOKEN=your_api_token_here
# Or legacy email/key credentials
CLOUDFLARE_EMAIL=your_email_here
CLOUDFLARE_API_KEY=your_global_api_key_here
CLOUDFLARE_TIMEOUT=30
CLOUDFLARE_RETRIES=3
CLOUDFLARE_RETRY_BACKOFF=100
CLOUDFLARE_LOGGING_ENABLED=true
Usage Examples
Zones
Listing Zones
use Vendor\Cloudflare\Facades\Cloudflare;
$zones = Cloudflare::zones()
->filter(['status' => 'active'])
->perPage(50)
->page(1)
->get();
foreach ($zones as $zone) {
echo $zone->name . ': ' . $zone->status . "\n";
}
DNS Records
Managing DNS Records for a Zone
// Create a new record
$record = Cloudflare::dns()->create('zone_id_here', [
'type' => 'A',
'name' => 'subdomain',
'content' => '1.2.3.4',
'proxied' => true,
'ttl' => 1
]);
// Update the record
Cloudflare::dns()->update('zone_id_here', $record->id, [
'type' => 'A',
'name' => 'subdomain',
'content' => '5.6.7.8',
'proxied' => false,
'ttl' => 120
]);
// Delete the record
Cloudflare::dns()->delete('zone_id_here', $record->id);
Worker Scripts
Uploading and Managing Workers
Cloudflare::workers()->upload('account_id_here', 'my-script', 'console.log("Hello Worker");');
License
The MIT License (MIT). Please see License File for more information.
Development Environment
Built using ServBay
- Mac M4 Tested
- macOS Apple Silicon
- Powered by ServBay