overblog/thrift-bundle
Symfony bundle that integrates Apache Thrift, letting you expose and consume Thrift services with configurable protocols, transports, and serialization. Register services, clients, and servers as container services with flexible per-service configuration.
.thrift IDL, generate PHP stubs, register clients/servers in the DI container. If you need that, "buy" (adopt) saves weeks; if your needs are narrow, a bespoke service provider over apache/thrift is a bounded, 1–2 sprint build.Bundle/compiler-pass model does not map onto Laravel's service providers without translation. That is a hiring and onboarding cost, not just a technical one.Adopt only if all of the following hold:
Look elsewhere if:
apache/thrift plus your own service provider — roughly a day or two of work, and you own it outright instead of inheriting abandoned glue.To executives (one paragraph): We evaluated overblog/thrift-bundle as part of a dependency review. It is a thin Symfony adapter that generates and wires PHP clients for Apache Thrift, a legacy cross-language RPC standard. It has not been released since 2019, has no downstream dependents, and does not target Laravel. Recommendation: do not adopt it as a strategic dependency. It is only defensible as a short-term compatibility bridge if we already have live Thrift contracts we cannot retire — and even then we should budget for forking it. If we need cross-service contracts going forward, fund a decision on a maintained alternative (gRPC/Protobuf or HTTP/JSON) rather than accumulating maintenance debt here. The decision cost is low; the cost of a default-yes is a permanent carve-out in every future PHP upgrade.
To engineering (summary): This is a Symfony bundle over apache/thrift — IDL compile step plus DI-registered clients and servers. Assume it is stale: pin the commit, expect PHP 8 and modern Symfony incompatibilities, and plan a fork. For Laravel, skip it and build a small service provider directly on apache/thrift; the bundle's value is the framework glue, and that glue is the part that does not port. Either way, contain it behind our own interface so the underlying transport is swappable when we revisit the architecture decision.
How can I help you explore Laravel packages today?