mapudo/guzzle-bundle
Symfony bundle that integrates the Guzzle HTTP client, providing a configurable service for making HTTP requests, with profiling and easy dependency injection into your applications.
LogMiddleware — useful only if you already run Guzzle's logging middleware across many named clients and want channel-based log routing wired from container config. For most teams the same outcome is still ~30 lines of services.yaml; the release does not change that calculus.LogMiddleware change and state nothing about PHP or Symfony support. Before upgrading a legacy app to v2.3.0, verify composer.json constraints against your PHP 8.x and Symfony version — a 2019-origin bundle is not guaranteed to support Symfony 6/7.Http facade; there is no DI gap for this bundle to fill.Consider only if all of the following hold:
composer.json constraints against your PHP and Symfony versions (do not assume Symfony 6/7 support from a 2019-origin bundle).base_uri, timeouts, auth, handler stack) injected by service ID rather than hand-written factories.LogMiddleware to route to a specific Monolog logger/channel per client — the new v2.3.0 capability — and would otherwise hand-wire that mapping.composer.json and you are deciding keep-vs-remove during a refactor, where a current 2.x pin is now possible.Look elsewhere if:
GuzzleHttp\Client bound in a service provider, or the Http facade with Http::baseUrl()->timeout()->withToken(). Zero packages needed.symfony/http-client with native autowiring and scoped clients, or a PSR-18/PSR-17 pair — first-party, maintained, and testable with MockHttpClient.eightpoints/guzzle-bundle is the actively maintained option in this niche.MockHandler / HandlerStack gives you this without a bundle in the way.Executive summary (one paragraph): A community Symfony bundle that wires Guzzle HTTP clients into the DI container, now with a v2.3.0 feature that lets LogMiddleware target a specific logger per channel. It is small, MIT-licensed, and low-adoption (14 stars, zero dependents). The long gap since its 2019 release is no longer absolute — there is a fresh 2.x publish — but one feature release after years of dormancy is not evidence of healthy maintenance, and it still sits on our HTTP egress path where security patches matter. We recommend no-go for new development: it solves a configuration problem we can solve in our own service definitions, and it remains inapplicable to our Laravel services. Exception: a legacy Symfony application already depending on it can now pin a current 2.x while we schedule replacement with Symfony's first-party HttpClient or a maintained alternative.
For engineering: The core value is still ~30 lines of services.yaml, plus the new LogMiddleware channel-injection convenience. Before adopting or upgrading to v2.3.0, confirm PHP 8.x / Symfony version compatibility in composer.json — the release notes are silent on it. The strategic path is unchanged: symfony/http-client scoped clients (or Laravel's Http facade) deliver the same ergonomics with first-party maintenance and a better mocking story.
Ask: Approve a "contain and replace" ticket for legacy usage, pin to v2.3.0 with compatibility verified, and keep new adoptions blocked in the dependency allowlist; no roadmap impact.
How can I help you explore Laravel packages today?