Skip to content

ghostcompiler/laravel-cloudflare

Repository files navigation

Laravel Cloudflare

Laravel Cloudflare SDK

A premium, feature-rich PHP SDK and Laravel integration for the Cloudflare API v4, featuring rate-limit handling, automatic retries, and concurrent batch operations.

Laravel PHP Version Cloudflare API Ghost Compiler


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-After response 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.

About

Complete Laravel Cloudflare API SDK for managing DNS records, zones, cache, SSL, firewall rules, workers, analytics, and Cloudflare services with a fluent Laravel-first developer experience.

Topics

Resources

License

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages