sebdesign/artisan-cloudflare
A Laravel package that adds Artisan commands for managing Cloudflare, so you can purge cache, manage DNS records, and control zones from the CLI or scheduled tasks. It wraps the Cloudflare API in a simple, configurable integration for your app.
Architecture fit. Small, single-purpose Laravel package that wraps Cloudflare's API behind artisan commands and a facade, so cache invalidation can be wired into deploy scripts, schedulers, and model lifecycle events without hand-rolling HTTP calls. It sits at the edge of the application: no schema, no queue dependency, no long-running process. That makes it a low-coupling fit for any Laravel app served through Cloudflare. It is a convenience wrapper, not infrastructure — if our deploy pipeline already purges via a curl step, the package's value is config management and ergonomics rather than new capability.
Integration feasibility. High. Composer install, publish config, set credentials, invoke the artisan commands. No migrations. The real integration work is credential handling (scoped API token vs. legacy email + global key) and deciding purge granularity (everything vs. URL/tag), which is as much a Cloudflare plan-tier question as a package question. Exact command namespaces and facade signatures should be confirmed against the README at v2.9.0 rather than assumed.
Technical risk.
Key questions.
composer.json? The notes drop PHP 7.x but don't state the new floor — likely 8.2+, possibly 8.3+ to align with Laravel 13.Stack fit. PHP 8.x, Laravel 13-compatible, behind Cloudflare with a zone-scoped API token. No interaction with queue, cache, or filesystem drivers; coexists cleanly with other Laravel packages.
Migration path.
^2.8, treat it as a dead-end branch, and plan the PHP 8 / Laravel 10+ framework upgrade as the actual work; jump to 2.9+ afterward.^2.9, run the suite, confirm commands resolve and config loads, then exercise a real purge against a staging zone before production.composer why-not sebdesign/artisan-cloudflare 2.9.0 in CI as the fast blocker check.Compatibility. Verify transitive resolution of the Cloudflare SDK and Guzzle against our locked major. Check whether the published config/cloudflare.php shape changed between 2.8 and 2.9 — if so, republish and merge rather than overwrite.
Sequencing.
Maintenance. Low day-to-day: no schema, no daemons, no jobs of its own. Cost is upgrade cadence — it tracks Laravel majors, so each framework cycle inherits a version bump. Budget it as a line item inside framework upgrades rather than as standalone work.
Support. No vendor SLA; upstream is one maintainer with best-effort GitHub triage. Mitigate by pinning exact versions and keeping a fallback: the purge call is a few lines of Guzzle, so if the package stalls we can inline it in under a day. That fallback is the genuine de-risk and it is cheap.
Scaling. Negligible compute footprint — it is an outbound HTTP call. The scaling concern is Cloudflare's rate limits and the origin-load consequence of purge-all under high traffic. Prefer targeted purges where plan permits and batch where possible.
Failure modes.
Ramp-up. Very low — an afternoon for a mid-level Laravel developer. The subtlety is Cloudflare semantics (token scoping, purge granularity, propagation timing), not the package itself.
How can I help you explore Laravel packages today?