rokka/client-bundle
Symfony bundle that integrates the Rokka image CDN service, providing service configuration, dependency injection, and helpers to generate and manage optimized image URLs and stacks in your Symfony applications.
Architecture fit. Read the description carefully: this is a Symfony bundle, not a Laravel package. It registers DI services, a configuration tree, and autowiring aliases for rokka/client inside Symfony's kernel. Laravel's service container has no concept of bundles, extension classes, or config/packages/*.yaml trees, so the package cannot be installed into a Laravel app as delivered. The functionally important code is thin — it wires Rokka\Client services from config — which means the value we actually need lives in the underlying rokka/client SDK, not in this repo. 1.4.1 does not change this — it is a compatibility release only, adding Symfony 7 install support and PHP 8.3 test coverage; no new features, no API surface change.
Integration feasibility.
1.4.1 explicitly permits installation on Symfony 7, so the bundle is viable on a current-symfony stack rather than needing a fork or a --ignore-platform-reqs workaround. One composer require, one config block, inject the client. A day or less.rokka/client directly, hand-roll a ServiceProvider, a config/rokka.php, and optionally a facade. Realistic estimate: 1–3 engineering days for parity, plus testing.Technical risk.
1.4.1 answers that directly — Symfony 7 support and PHP 8.3 CI. Residual risk remains: no stated policy on how quickly future Symfony majors (8.x) will be picked up, and the release is ~a month-plus behind Symfony 7's availability rather than same-day. Re-check at each framework major.Key questions.
rokka/client instead.Stack fit. Symfony 6/7 is the first-class fit; Symfony 5 remains supported but is out of security support and should not be a target for new work. Given 1.4.1, we can adopt on Symfony 7 without caveats. For Laravel, treat this repo as reference documentation for how to wire the SDK — read the service definitions, then reimplement them idiomatically in a service provider. Do not attempt to shim Symfony's DI into Laravel.
Migration path.
rokka/client (plus this bundle on Symfony) removes boilerplate around signing, URL generation, and stack management.ImageService interface from day one so the vendor is swappable.Compatibility. 1.4.1 resolves the two checks that previously gated us: Symfony 7 installability and PHP 8.3 testing. Remaining pre-commit verification: the bundle's exact PHP floor versus our runtime, PSR-18/PSR-17 HTTP client support, and interaction with Symfony's cache and HTTP client contracts. Note that "tested on PHP 8.3" is a CI signal, not a guarantee for 8.4+; if we run a newer PHP, validate locally.
Sequencing.
rokka/client from a throwaway script; confirm auth, upload, and URL generation work. Run it on our target Symfony/PHP pair so 1.4.1's constraints are exercised in our environment, not just CI.Pin the dependency at ^1.4.1 (not an open constraint) so we get the Symfony 7 support deterministically.
Maintenance. Low code churn expected — the wrapper is small and stable. 1.4.1 is a positive maintenance signal: the maintainer is still active and does track framework majors, which lowers (but does not eliminate) the abandonment concern. The bus factor is still low and the community is still invisible. Pin the version, watch the repo for releases, and budget a named internal owner. Our own adapter layer, not this bundle, should be the thing we maintain.
Support. Two channels: Rokka's commercial support (tied to our contract) and GitHub issues on a repo with 8 stars, where answers may be slow or absent. No dependents means no Stack Overflow trail and no peer implementations to copy. Assume self-sufficiency. The fact that 1.4.1 shipped suggests issues do get addressed, but with no published SLA.
Scaling. Image processing, resizing, and delivery shift to the CDN, which is genuinely good for us: it removes CPU and egress load from our origin servers and makes responsive-image variants cheap. URL generation is local and effectively free. The scaling constraints move to Rokka's plan tiers, request quotas, and per-operation pricing — capacity planning becomes a finance conversation as much as an engineering one. Cache hit ratio is the metric to instrument. Nothing in 1.4.1 changes the scaling profile.
Failure modes.
composer update. Commit the lockfile and let dependency bumps be reviewed changes.Ramp-up. A Symfony developer is productive in hours — the config schema is the whole learning curve. On Laravel, plan a few days for the service provider, config, and tests. Separately, budget onboarding for product, design, and content teams on Rokka's stack/transform semantics and the asset workflow, since URL conventions become a shared contract across teams rather than an implementation detail.
How can I help you explore Laravel packages today?