- Does setono/kraken-io-bundle work with Laravel, or is it Symfony only?
- It is Symfony only. The package is a thin Symfony bundle that registers a dependency-injection extension, a configuration tree, and a service alias for the Kraken.io PHP SDK. There is no Laravel service provider, facade, or config publishing. If you are on Laravel, skip the bundle and depend on the Kraken.io PHP SDK directly.
- How do I install and configure setono/kraken-io-bundle?
- Install it with composer require setono/kraken-io-bundle, then enable the bundle in your kernel or bundles.php. Configuration covers your API key and secret, the default optimization mode (lossy or lossless), and an optional resize setting. After that you can autowire the Kraken service alias into your own services and call the SDK through it.
- Is setono/kraken-io-bundle compatible with Symfony 6, Symfony 7, and PHP 8.1 or newer?
- Probably not without a fork. The last release was 2020-11-26, which predates Symfony 6, PHP 8.1+, and likely pins Guzzle 6.x through the SDK chain. Expect a clean install on Symfony 4.4 or 5.4 with PHP up to 8.0, and conflicts on symfony/dependency-injection or guzzlehttp/guzzle beyond that. Run composer why-not setono/kraken-io-bundle in the target application before you commit to anything.
- Is setono/kraken-io-bundle abandoned or still maintained?
- There have been no releases since November 2020, and the project has roughly 2 stars and 0 dependents, so there is no community signal or upgrade cadence. Software composition analysis tooling will flag it as abandoned on every scan, and there is no maintainer path for CVE patches. The saving grace is that the coupling is shallow: replacing the bundle with a hand-written service definition is about a day of work.
- What does setono/kraken-io-bundle actually add over using the Kraken.io PHP SDK directly?
- Very little beyond convenience. Its real surface area is a DI extension, a configuration tree for the API key, secret, optimization mode, and optional resize, plus a service alias and possibly a small wrapper service. It is glue, not an engine, and the value over calling the SDK yourself is measured in dozens of lines. That makes it reasonable as a reference implementation even if you never install it.
- How do I resolve Guzzle or Symfony dependency conflicts when installing this bundle?
- Start with composer why-not to see exactly which constraint blocks resolution, since the failure is usually guzzlehttp/guzzle 6 versus 7 or a Symfony component version pin. If you must keep the bundle, fork it, vendor it under an internal namespace, add a Composer replace directive, and pin every transitive dependency. Add a compatibility shim for the Symfony version you run and treat the code as in-house from day one.
- Should I use this bundle in production, or build my own image optimizer service?
- The safer path is to copy the bundle's DI configuration and service wiring into an internal ImageOptimizerInterface with a Kraken adapter behind it. That keeps the small convenience, removes the abandoned-dependency liability, and gives you a swap seam for re-evaluating vendors later. Before doing that, benchmark Kraken.io against imgproxy, Cloudinary, Tinify, or self-hosted Imagick and sharp on compression ratio, visual quality, and cost per 1,000 images.
- Does setono/kraken-io-bundle optimize images asynchronously through a queue?
- No. The bundle only wires the Kraken.io SDK into the container, so any call is synchronous unless you build the async layer yourself. Because Kraken.io is a paid, network-bound SaaS, running optimization in the request path adds latency and a failure mode to every upload. Dispatch the work through Symfony Messenger with a fail-open or no-op adapter so image optimization failures never break the user request.
- Does the bundle support lossy versus lossless modes, resizing, and other Kraken.io options?
- Configuration exposes the API credentials, a default optimization mode of lossy or lossless, and an optional resize setting. Anything beyond that you would call on the SDK yourself through the service alias. It does not provide LiipImagine, Flysystem, or Sylius integration, so if your asset pipeline depends on those you will still be writing the adapter layer.
- How do I test the bundle without spending money on Kraken.io credits?
- Use Kraken.io sandbox credentials for a one-day spike against your actual asset corpus, calling the SDK directly without the bundle first. For automated tests, mock or stub the Kraken client behind your own ImageOptimizerInterface rather than hitting the network. Also verify what happens when the API is down, since a paid third-party SaaS in the request path is the genuinely risky dependency here, not this wrapper.