Search by

symfony / ux-cloudflare-image

fabpot

Symfony UX Image Cloudflare Bridge

Package info

github.com/symfony/ux-cloudflare-image

Homepage

Type:symfony-ux-image-bridge

pkg:composer/symfony/ux-cloudflare-image

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

3.x-dev 2026-09-28 06:19 UTC

This package is auto-updated.

Last update: 2026-09-28 06:20:34 UTC


README

EXPERIMENTAL This component is currently experimental and is likely to change, or even change drastically.

Cloudflare Image Resizing integration for Symfony UX Image, through the /cdn-cgi/image/ URL path. Use this bridge to transform images already served from your own origin ("bring your own storage") behind a Cloudflare zone, without running any image-processing server yourself.

Important

Image transformations must be enabled on your Cloudflare zone before /cdn-cgi/image/ URLs work. See Enable transformations in the Cloudflare docs.

Installation

Install the bridge using Composer and Symfony Flex:

composer require symfony/ux-cloudflare-image

DSN example

UX_IMAGE_DSN=cloudflare://cdn.example.com

The host is the domain proxied by your Cloudflare zone; it must be the domain the origin images are served from.

Parameter mapping

ImageTransformation properties are mapped to Cloudflare's options URL segment:

ImageTransformation Cloudflare option Notes
width width
height height
fit: Fit::Cover fit=cover
fit: Fit::Contain fit=contain
format format format: 'auto' lets Cloudflare pick AVIF/WebP based on the request
quality quality
operations (as given) merged in verbatim, see below

Supported operations

Any of the following keys can be passed through ImageTransformation::$operations and are forwarded as-is to the Cloudflare URL:

gravity, dpr, rotate, trim, blur, brightness, contrast, gamma, saturation, sharpen, background, border, anim, metadata, onerror, compression.

See the full options reference for what each one does.

Supported formats

avif, webp, jpeg, png.

Cloudflare also supports format=auto, so this provider negotiates the best format for the requesting browser itself: the single <img> of ux_image() still gets a modern format. ux_picture() names each format explicitly instead.

Resources