jbouzekri/phumbor-bundle
Symfony bundle integrating the Phumbor PHP client for Thumbor. Configure your Thumbor server and security key, then generate signed image URLs and use Twig helpers to resize, crop, and optimize images in templates. Simplifies wiring Phumbor services into Symfony apps for dynamic thumbnails.
srcset," or "OG image generation," the transform URL contract is the thing you want locked early. Wiring phumbor in behind a small service lets you ship UI against thumbor/{width}x{height}/smart/{url} semantics before the service even exists in every environment.99designs/phumbor client is the actual reusable asset; in Laravel you'd bind it in a service provider in ~20 lines.Adopt when all of these hold:
99designs/phumbor directly), and you already have, or are about to have, a Thumbor instance.Look elsewhere when:
99designs/phumbor directly; a bundle's config tree is dead weight, and you also avoid inheriting Symfony-major churn like 4.0.0. Vendor the ~30 lines of service wiring yourself and own it.Risk read for the record: the dependency is low-risk despite low adoption precisely because it's a thin bridge over a stable client. Worst case, inline it. 4.0.0 strengthens that read rather than weakening it — a release whose whole content is "support Symfony 8, delete unsupported versions" is what a well-behaved thin package looks like. Say so explicitly so nobody pattern-matches "26 stars" or "major version bump" to "too risky" without nuance.
One line: A small, MIT-licensed Symfony bundle that connects our app to Thumbor, the self-hosted image-resizing service — so image crops and sizes become a URL, not a code change.
To executives: It's the glue, not the product. It lets us evaluate self-hosted image delivery cheaply — no per-transform SaaS bill — and defer any vendor commitment until we know our volume. Cost is near-zero to try; the real decision it informs is "run Thumbor vs. pay Imgix/Cloudinary," and it makes that decision reversible. The 4.0.0 release is a Symfony 8 compatibility bump with no new features — the project is current and maintained, but by one person; mitigated by the fact that it's ~1 file of config and can be inlined in an afternoon.
To engineering: Symfony-only; the reusable core is 99designs/phumbor. It gives us DI-configured, HMAC-signed transform URLs, which is the piece we'd otherwise hand-roll badly. 4.0.0 adds Symfony 8 support and drops older Symfony versions — pin 4.x on Symfony 8, pin 3.x otherwise, and note that on Laravel the version question disappears entirely because we'd vendor the wiring ourselves. Recommend we adopt it (or its 20-line Laravel equivalent) only behind our own ImageUrlService interface — no bundle types leaking into domain code, so swapping to a managed provider later is a one-class change. Treat Thumbor's security key as a secret with rotation, and confirm we have capacity to run and monitor the service before this becomes load-bearing.
How can I help you explore Laravel packages today?