sourcetoad/soapy
Soapy is a lightweight Laravel/PHP package that simplifies SOAP integrations. It offers a clean client wrapper for WSDL endpoints, requests, and responses, helping developers connect to legacy SOAP services without boilerplate or complex configuration.
Architecture fit
souretcoad/soapy is a thin, opinionated Laravel wrapper around PHP's native ext-soap client. It fits cleanly into a Laravel service that must consume one or more third-party SOAP/WSDL APIs (payments, logistics, healthcare clearinghouses, government gateways) and where the team wants configuration-driven clients, a consistent option surface, and test-friendly fakes rather than ad-hoc new SoapClient(...) calls scattered across the codebase.Integration feasibility
composer require souretcoad/soapy, publish config, declare named clients with WSDL, endpoint, and options, then resolve through the provided facade/manager. Fits existing Laravel service-provider and config-cache conventions.ext-soap PHP extension must be present in every runtime image (local, CI, staging, prod, queue workers, scheduler containers). This is the most common first-day blocker and should be verified before commitment.Technical risk
ext-soap, behavior and limitations of the native extension (WSDL parsing quirks, SOAP_* constants, encoding, SSL context options) surface directly. Debugging often means dropping to raw SoapClient semantics.Key questions
ext-soap already present in all environments, or is this a platform-team change with lead time?Stack fit
composer.json (^3.1), not a floating constraint.Migration path
new SoapClient(...), WSDL URL, and hand-rolled XML call currently in the codebase, with owning team and call volume.SoapGateway (or per-provider client class) that owns retries, timeouts, logging, and exception translation, and delegates transport to Soapy. This bounds future churn if the package is ever replaced — the exit cost becomes one file, not a codebase-wide refactor.SoapClient usage and any duplicate WSDL/credential handling.Compatibility
composer.json constraints actually admit our PHP/Laravel combination before planning the framework upgrade; the release notes describe intent, the manifest describes reality.Sequencing (suggested)
ext-soap in all images and CI; add to base-image definition and document.ext-soap.^3.1 pinned, run in staging against live-like provider sandboxes.Maintenance
ext-soap wrapper) in case the project stalls. Document that contingency now, while the wrapper boundary is fresh.Support
Scaling
ext-soap builds full DOM trees in memory.Failure modes
Ramp-up
How can I help you explore Laravel packages today?