php-soap/ext-soap-engine
A SOAP engine for php-soap that builds clients from WSDL using PHP's native ext-soap extension. It generates type-safe client classes, handles requests and responses, and lets you swap engines without changing your application code.
php-soap client API rather than being a bespoke client, it supports a strategic decision to code against our SOAP interface and treat the underlying engine as swappable. That is the real product value: it de-risks a future migration and keeps vendor/implementation churn contained to a single adapter.new \SoapClient(...) calls, ad-hoc option arrays, and copy-pasted fault handling can decide to consolidate onto php-soap clients with this engine as the default backend — preserving the battle-tested native behavior while gaining a consistent API, testability, and a seam for instrumentation.ext-soap, this fits a "minimize supply chain" policy — a legitimate input when choosing between this and larger, dependency-heavy SOAP frameworks.Adopt when most of the following hold:
ext-soap is already enabled in all target environments (staging, prod, and any on-prem/partner-hosted deployments). This package is an adapter over the extension, not a replacement — if the extension is unavailable or disabled by policy, the value proposition collapses immediately.php-soap client abstractions. The benefit is the consistent API plus engine swappability. Used standalone, you are paying an indirection cost for something \SoapClient gives you directly.Look elsewhere when:
ext-soap is not available or not permitted (shared hosting, hardened containers, some serverless runtimes) — you need a pure-PHP engine.php-soap packages or in your own code; do not assume this package supplies them.\SoapClient with a config constant may be the more honest engineering answer; introducing an abstraction layer for one endpoint is over-engineering.For executives (one paragraph): We have a recurring, low-glamour cost: integrating with partners and internal systems that only speak SOAP — ERPs, banks, tax authorities, logistics providers. Today that work tends to be bespoke per integration, which makes it slow to add partners and risky to change. This package is a thin, free (MIT), dependency-light adapter that lets our engineers write SOAP integrations against one consistent internal interface while the actual wire protocol is handled by PHP's long-established native SOAP extension. The business case is not new capability; it is lower cost per integration, less duplicated code, and the ability to change the underlying implementation later without rewriting our integrations. It carries no licensing cost and no new runtime dependencies beyond an extension we would need anyway. The main caveat is that it is a small open-source project, so we should treat it as a replaceable component behind our own interface rather than a foundation we cannot move off.
For engineering leadership: This is a deliberate architectural seam. We code to the php-soap client API; ext-soap-engine is the default backend. That gives us native, battle-tested serialization and WSDL handling — behavior we would otherwise reimplement badly — plus a one-line swap if we ever need test doubles, a different engine, or a different transport. Costs: a small, thinly maintained dependency, a hard requirement on ext-soap in every environment, and synchronous-only calls. Mitigations: keep the engine behind our own service boundary, pin the version, add contract tests against recorded WSDL fixtures, and confirm ext-soap availability in prod and any partner-hosted deployment as a release gate. Recommendation: adopt for new WSDL-based integrations and as the consolidation target for scattered legacy \SoapClient usage, but do not standardize on it for anything requiring async throughput or exotic transport behavior.
How can I help you explore Laravel packages today?