wsdltophp/packagegenerator
wsdltophp/packagegenerator turns WSDL files and XML schemas into complete PHP packages, generating classes, models, and SOAP client code so you can integrate web services quickly without hand-writing repetitive boilerplate.
SoapClient, or generate a typed client package once and commit it. This package makes the third option cheap enough to be the default — which turns an open-ended R&D line item into a scoped, mechanical one.acme-api 2.4.0), diff regenerated output in code review when the partner publishes a new WSDL, and roll back — a real release-management decision, not just a codegen convenience.ext-soap and does not fetch/parse the WSDL per request. That removes a hosting constraint (shared hosting, slim containers, locked-down PHP builds) and a latency/failure mode (partner WSDL endpoint down = your app down).Adopt when:
ext-soap at runtime, either for hosting reasons or because per-request WSDL parsing is slow or fragile.Look elsewhere when:
SoapClient in runtime mode is two hours of work and this is two days of setup plus CI.For executives (one paragraph): Enterprise and B2B partners — carriers, tax and payment providers, ERP and regulatory systems — still expose SOAP/WSDL interfaces. Today each one is a bespoke, hard-to-estimate engineering project with a specialist dependency. This tool turns a published WSDL into a typed PHP client package automatically, so onboarding a partner becomes a repeatable, forecastable workflow rather than a research project. It's MIT-licensed with no runtime or per-seat cost, the generated code belongs to us, and it removes a hosting constraint and a live dependency on the partner's servers. The trade-off is modest: a small setup and review process, and a real limitation around advanced security/attachment features that some partners require. Net: shorter time-to-first-successful-call per partner, lower maintenance cost, and less key-person risk in a part of the codebase that is otherwise opaque.
For engineering (the pitch and the caveats):
ext-soap needed at runtime, no per-request WSDL fetch. Faster and more resilient than SoapClient in WSDL mode, and it's statically analyzable.composer gen:acme-api), run it when the partner publishes a new contract version, and let the diff be the review artifact. Never hand-edit generated files — extend or decorate them instead.How can I help you explore Laravel packages today?