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

Im Bundle Laravel Package

leapt/im-bundle

LeaptImBundle integrates the Imagine image manipulation library into Symfony, letting you define reusable filters for resizing, cropping, and thumbnailing images. It provides cached, on-demand image generation and Twig helpers so templates can serve optimized images with minimal configuration.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for image processing: this package answers "do we write our own ImageMagick shell wrapper, or adopt one?" It gives you the full convert/mogrify operator surface — distort, composite, color profiles, EXIF autorotate, format conversion — without anyone hand-rolling an abstraction over every flag. The product decision it de-risks is scope: you get the long-tail transformations for free instead of triaging them one by one.
  • Feature roadmap for media/upload surfaces: directly enables user-facing work like thumbnail and derivative generation, responsive image sets, watermarks, WebP/AVIF conversion, PDF and document previews, and admin-side image editing. Useful when estimating whether an "image tools" epic is a two-week or two-month item.
  • Delivery-model decision — service layer vs. template layer: the bundle exposes ImageMagick from controllers and templates. That's a real product choice: Twig-level access lets content editors and theme authors apply filters without engineering, but it also means transformation logic can leak out of your service layer. Decide deliberately whether image ops are a product capability (service, cached, versioned) or a presentation convenience (template helper). v6.1.0 reinforces this: the release patches shell command injection in Wrapper/ClearCommand and regex injection in ImExtension — the template-exposed surface is exactly where that risk concentrates.
  • Infrastructure and ops commitment: wrapping the system binary is a platform decision, not just a library choice. Your container images must ship ImageMagick, you inherit its policy file, delegate restrictions (Ghostscript/PDF is a recurring CVE source), and memory/time limits. That belongs on the infra roadmap alongside the feature.
  • Consolidation/migration triage: if the team is already on liip/imagine-bundle or Intervention Image, adopting this is a lateral move with near-zero product upside. The decision it usefully supports is "do we need a wrapper at all, or is our existing abstraction good enough?"
  • Security-patch adoption policy: v6.1.0 is a security release with no breaking changes — a one-line composer bump. If this is already in the dependency tree (or vendored/forked), this is a "patch this sprint, no product review required" decision. If evaluating fresh, it sets a hard version floor: do not adopt anything below 6.1.0.
  • Prioritization signal — mildly improved, verdict unchanged: still low traction (single maintainer, no dependent projects), but the release shows the maintainer (jmsche) ships promptly, responds to static-analysis and security findings, and has added Dependabot/Zizmor CI hardening. That's evidence of care, not evidence of adoption. Treat it as a candidate for a small internal utility, not a strategic platform bet.

When to Consider This Package

Consider it when:

  • You are on Symfony — this is a Symfony bundle, not a Laravel package. It will not drop into a Laravel app; the Twig extension and DI configuration are Symfony-specific, and you'd be adapting rather than installing.
  • Your image needs are operator-shaped, not pipeline-shaped — you need a specific convert invocation, not a full derivative/cache/filter configuration system.
  • You want a thin wrapper you're willing to own — and you pin >=6.1.0, read the source before shipping, and can absorb a patch upgrade on short notice. MIT makes forking legally trivial; the cost is engineering attention, not licensing.
  • You have a small team with an existing ImageMagick operational practice — you already run the binary in containers and know your policy file.
  • The surface area is genuinely small: a handful of transformation helpers, low request volume, no need for async processing.
  • You are on Symfony with AssetMapper — v6.1.0 fixes AssetMapper usage, so that integration is now a viable path rather than a blocker.

Look elsewhere when:

  • You're on Laravel — use Intervention Image, spatie/image, or Glide. The Symfony coupling makes this the wrong tool regardless of merit.
  • You need production-grade image pipelines — liip/imagine-bundle is the mature Symfony answer: configurable filter sets, caching, responsive images, and a community large enough to survive a maintainer leaving. If you need caching and filter configuration, you're rebuilding liip anyway.
  • You need offload or scale — Cloudinary, imgix, Cloudflare Images, or Thumbor move CPU and storage off your app servers and give you a CDN story this package can't.
  • Security posture matters more than convenience — v6.1.0 fixed a command-injection flaw in the library itself, which is the honest measure of this package's threat model: shelling out to a binary means you own escaping, temp-file handling, and filename hygiene, and the wrapper is not a safety net for that. If any transformation parameter traces back to user input (crop dimensions, rotation angles, filter names), a template-exposed wrapper remains an injection surface. Prefer allowlisted filters; prefer a library that takes typed arguments.
  • You need async/queued processing, stream abstractions, HEIC/AVIF at volume, or PSR-aligned interfaces. None of that is in scope here.
  • Maintenance risk is unacceptable — for a revenue-critical path, a single-maintainer package with no dependents is a bus-factor problem. Zero dependents is not validation; it's the absence of it. One responsive patch release does not change that arithmetic.

How to Pitch It (Stakeholders)

To executives: This is a small, MIT-licensed helper that lets our Symfony app use ImageMagick's existing image-processing engine instead of building one. Cost is negligible and there's no license exposure. The newest release (v6.1.0) is maintenance plus one security fix for a command-injection flaw — no breaking changes, so upgrading is a one-line dependency bump if we already use it. That fix cuts both ways: it shows the maintainer ships patches quickly, but it also confirms the package carries real security surface we'd own. The honest framing remains that we'd be adopting code, not a supplier: low community traction means we own it once it's in. Recommend it only for a contained, non-critical image feature, pinned to 6.1.0 or later, with a half-day budgeted to vendor and review it, and an interface boundary so we can swap to a more established library or a hosted image CDN later without a rewrite.

To engineering: Thin service plus a Twig helper over the convert/mogrify binaries — fast to wire up, gives us the full operator set without a per-flag PHP API. Action item if it's already in the tree: bump to ^6.1.0 now — it closes shell command injection in Wrapper/ClearCommand and regex injection in ImExtension, and it's a no-risk upgrade (CI/static-analysis/test fixes, AssetMapper fix, PHP 8.6 coverage; Symfony 8.0 dropped from the test matrix, not a supported-version change). We still own the sharp edges: command escaping, temp files, error handling, and confirming the binary exists in every environment. Do not let template-level filters accept user-controlled arguments — that's precisely the class of bug 6.1.0 just patched. Abstract it behind our own ImageTransformer interface on day one so the coupling is one class, not fifty call sites — and if we find ourselves building caching, filter configs, or responsive image sets, stop and switch to liip/imagine-bundle rather than growing this one.

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.
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib