id-sign/image-bundle
id-sign/image-bundle is a Composer-installable PHP package that packages image-related functionality as a reusable bundle. It offers a straightforward foundation for adding image handling to PHP applications, helping developers integrate and manage image features with minimal setup.
Architecture fit
bin/console, <twig:Image>, image_url(), Composer package name id-sign/image-bundle) identifies this as a Symfony bundle with a Twig component front-end, not a Laravel package. That is the single most important architectural finding for us: if our target application is Laravel, this is not a drop-in dependency.autoDimensions, blur, fit="scale-down") plus a derivative cache keyed by source + variant. That is the standard pattern and it is the right one — it keeps templates declarative and pushes work into a cacheable processor.width/height/w descriptors) in agreement with what the processor actually delivers.Integration feasibility
composer update plus one CLI purge.<twig:Image>, and a storage adapter from Laravel filesystem disks to whatever abstraction the bundle's processor expects. That is custom glue with no upstream support — budget it explicitly or don't do it.Technical risk
image:purge --force invalidates everything; the release notes explicitly say old contain/scale-down breakpoint variants are removed by it. On a large media library this is a cold-start event against origin storage and the image processor.src threw during render and broke the page; now the page renders with no height attribute, no blur placeholder, and a 404 URL. This is the right call for availability, but it converts a loud failure into a quiet one. Misconfigured paths, broken uploads, and storage-permission regressions will now surface as 404s in access logs rather than as exceptions — we need alerting on that 404 class or we will discover breakage from users.Key questions
image_url() directly outside templates, and are those call sites covered by tests?Stack fit
<twig:Image> requires Twig components; confirm the Twig/Symfony UX versions in the target app satisfy the bundle's constraints before planning work.Migration path
composer update id-sign/image-bundle
bin/console image:purge --force
Compatibility
Sequencing
height renders before the production deploy, so the newly-silent failure mode is observable from day one.Maintenance
image:purge --force into the release checklist rather than rediscovering it per release.Support
max_source_bytes still fail loudly — preserve that distinction in the runbook so responders don't "fix" a deliberate hard failure.Scaling
Failure modes
| Failure | Behaviour after v0.3.0 | Response |
|---|---|---|
Missing/invalid src |
Page renders; no height, no blur, URL 404s; nothing cached; next request picks up a later upload |
Alert on image 404 rate; do not page per-occurrence |
Corrupt source, or source over max_source_bytes |
Fails loudly | Page/diagnose; intended |
| EXIF-rotated source, pre-purge | Stale dims and sideways placeholder persist | The purge is the fix — verify it ran |
| EXIF-rotated WebP on IM6 | No rotation; metadata agrees with output | Documented limitation; move to IM7 |
| Purge without warm-up | Cold cache, regeneration stampede, elevated TTFB | Warm top-N assets before opening traffic |
Thin source in contain/scale-down |
Now generates valid descriptors ≥1 px height | Previously produced rejected URLs; no action |
Ramp-up
How can I help you explore Laravel packages today?