Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Image Symfony Laravel Package

intervention/image-symfony

Symfony integration for Intervention Image, providing a ready-to-use image manager service for resizing, cropping, and applying filters. Configure drivers and options once, then inject the manager anywhere to handle uploads and thumbnails with clean, expressive code.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Feature scoping for image handling. Any roadmap item involving user uploads (avatars, product photos, receipts), on-the-fly resizing, thumbnails, watermarks, or format conversion (WebP/AVIF) requires an image manipulation layer. This package is the wiring layer that makes Intervention Image a first-class Symfony service, so it underwrites those features rather than being a feature itself.
  • Which Intervention major we standardize on (new decision). Release 4.0.0 of this bundle follows Intervention Image v4.0.0, while earlier bundle versions targeted v3. Upstream v3 and v4 APIs are not compatible and the bundle major tracks upstream, so choosing a bundle version is choosing an imaging API for the life of the feature. This is now a decision to record in the tech radar, not a detail to leave to whoever runs composer require.
  • Build vs. buy on glue code. The package remains a thin DI bridge: it registers ImageManager in the container, exposes an autowirable interface alias, and centralizes driver/option configuration in YAML instead of scattered new ImageManager(...) calls. The honest comparison is "package vs. ~20 lines of services.yaml we maintain ourselves." Evidence has shifted slightly in the package's favor: shipping a major release to track upstream v4 is a maintenance signal that a DIY snippet does not have.
  • Driver strategy (infra cost decision). GD vs. Imagick remains a real product decision with operational consequences: Imagick unlocks broader format support (AVIF/HEIC) and better quality control at higher memory/CPU cost and an extra system dependency; GD is simpler and usually already present. This package surfaces that as one config key, making it cheap to change later — a useful hedge while format requirements are unsettled.
  • Deployment/architecture posture. Because processing happens in-process, this supports a "no external image service" decision: no per-transform vendor fees, no egress costs, no third-party latency on the request path. The trade-off is that image work consumes app-worker CPU and memory — a capacity-planning input, not just an engineering detail.
  • Upgrade-window planning. Because the bundle and the imaging library move as a pair, the v3→v4 jump is a single coordinated dependency upgrade, not piecemeal. That is a schedulable, plannable event — good for roadmap hygiene, and an argument for wrapping usage in our own interface so the timing is ours.
  • Exit-cost and lock-in analysis. MIT license, no runtime service dependency, narrow API surface. Switching costs stay low. Ecosystem signals remain thin on community validation (single-digit stars, no dependents), but the 4.0.0 release is direct evidence of active upstream tracking — relevant to the "is this abandoned?" question a reviewer will ask.

When to Consider This Package

Adopt when:

  • You are on a Symfony version supported by the bundle major you pin, with Intervention Image v4 for bundle 4.x (or v3 with bundle 3.x). Confirm the exact PHP and Symfony floor in the bundle's composer.json before committing — the 4.0.0 note states only the upstream v4 alignment, and Intervention Image v4 raises requirements relative to v3, so the old "PHP 8.1+/Symfony 6.4+" line must be re-verified rather than assumed.
  • You want the imaging service autowired into services/controllers/message handlers without hand-rolled factory boilerplate, and the driver configured per environment (GD in CI, Imagick in production).
  • Your image needs are moderate: resize, crop, fit, watermark, encode, orient. You are not building a full responsive-image/asset pipeline.
  • You want to keep the option of moving processing to async workers later — a container-managed service injects into Messenger handlers more cleanly than a static helper.
  • New builds: start on bundle 4.x / Intervention v4 unless a blocking dependency forces otherwise; starting on v3 today buys an upgrade you will pay for later.

Look elsewhere when:

  • You need a mature asset pipeline. For named filter sets, cache busting, responsive srcset, and Twig helpers, LiipImagineBundle is the more complete and far more widely deployed answer. Check its Intervention v4 support timeline before assuming it is available to you.
  • You want managed transformation. At high traffic, many formats, or a desire to offload app servers, a service (Cloudinary, imgix, Cloudflare Images) removes the operational burden entirely — at a per-transform cost.
  • Dependency-risk tolerance is low. Single-digit stars, zero dependents, near-zero community validation. A major release reduces the "abandoned" risk but not the "you are the most serious user of this integration" risk. Pin an exact version.
  • You are mid-flight on Intervention v3. Do not take the 4.0.0 bump opportunistically; treat it as a scoped upgrade with its own testing pass, since both layers change at once.
  • You are on Intervention v2 or an older Symfony/PHP. No path here; v2 guidance does not transfer to v3 or v4.

Mitigation if adopting: pin exact versions of both the bundle and Intervention, wrap usage behind your own ImageProcessor interface so the bundle and the library are both replaceable, and keep the DIY fallback (a short services.yaml snippet, written against whichever Intervention major you chose) documented so removal stays a half-day task.

How to Pitch It (Stakeholders)

For executives: We need image handling for [uploads/thumbnails/catalog images] on the roadmap. This is a small, MIT-licensed Symfony integration for Intervention Image — a widely used PHP imaging library — that lets engineers configure image processing once, centrally, instead of hand-wiring it per feature. No license cost, no vendor contract, processing stays inside our own infrastructure (no per-image fees, no third-party egress), and it is deliberately easy to remove. The project just shipped a major release to track the current version of the underlying library, which answers the "will this be maintained?" question. Cost is engineering time only, measured in hours, and it is reusable across every image-related feature we ship; the main planning item is a scheduled version upgrade when we move to the new library major.

For engineering: Official Symfony integration from the Intervention org. It registers ImageManager plus an autowirable interface alias in the container and exposes driver/options as bundle config, so GD vs. Imagick is a YAML change rather than a code change and tests can swap in a stub cleanly. Heads-up on 4.0.0: it is a major release aligned to Intervention Image v4.0.0 — breaking by definition, and older bundle versions target v3. Treat the bundle major and the Intervention major as one locked pair; do not mix v3 and v4 APIs or guidance. Verify the PHP/Symfony floor in the bundle's composer.json, since the release note only states the upstream alignment. It is still a thin bridge, not a framework — expect to write your own resize/crop orchestration. Remaining caveats: low adoption (single-digit stars, no dependents), so pin exact versions and wrap it behind our own interface; and if we later need filter sets, caching, and responsive srcset, we reassess against LiipImagineBundle rather than extending this.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings