laminas/laminas-xmlrpc
Laminas XML-RPC provides a complete PHP implementation of the XML-RPC protocol, including both client and server support for encoding, decoding, and dispatching remote procedure calls.
system.listMethods introspection, caching of introspection results) supports decisions like "offer an XML-RPC endpoint to a specific enterprise customer/partner who cannot consume our REST API."Adopt when:
system.listMethods), and correct encoding of dates/base64 are exactly the parts teams get wrong when hand-rolling.Look elsewhere when:
LIBXML_ flags — set them, don't default), disable entity loading, and restrict egress/ingress.For executives (one paragraph):
Partner/legacy integration X requires the XML-RPC protocol — the other side cannot offer a modern API. Rather than build and permanently maintain a protocol implementation, we adopt
laminas/laminas-xmlrpc, a small BSD-3-licensed component from the Laminas project with a documented release history and current PHP support. It is a narrow, single-purpose dependency: it does not touch our product architecture or customer-facing APIs. We will confine it to one integration module behind an internal interface, so if the partner modernizes or the protocol is retired, we remove one adapter rather than unwinding a platform commitment. Cost: one dependency plus a few days of integration work; risk: low adoption means we largely support ourselves, which is acceptable given the codebase size and that it is not on our critical path beyond this one integration.
For engineering leads (what they actually get and what they must own):
XmlRpcGateway interface with a thin implementation, contract tests against the partner's sandbox, and timeouts/retries/telemetry at our adapter layer. Nothing outside the integration module imports a Laminas class.LIBXML_ flags, disallow external entities, cap response size, and treat all remote values as untrusted input validated against our own DTOs.How can I help you explore Laravel packages today?