manoakys/nusoap-bundle
A Symfony bundle that wraps the NuSOAP library, letting you build SOAP servers and clients from your Symfony application with service configuration handled through the bundle rather than manual NuSOAP setup.
ext-soap, which ships with PHP and is maintained by php-src.ext-soap handles poorly.Consider it, narrowly, when:
new nusoap_client(...) calls.ext-soap does not provide — non-WSDL mode, WSDL caching, SwA attachments, or a partner's idiosyncratic serialization.Look elsewhere when:
ServiceProvider, no facade, no auto-discovery. composer require yields an inert dependency, and the Symfony 2.x constraint will almost certainly conflict with the Symfony 6/7 components Laravel 10/11 pull transitively. Use ext-soap, a maintained NuSOAP fork, or an integration platform instead.symfony/soap, laminas-soap, or WSDL-generated clients with an active CVE path.Executives: This is a small Symfony integration shim around NuSOAP, a legacy PHP SOAP toolkit. It is not a strategic dependency: no community, no active maintainers, no security response. Recommend it only as a time-boxed tactical bridge for legacy B2B SOAP endpoints while migration to a supported SOAP client is funded. Frame the ask as "legacy lifeline with an exit plan and a named owner," not "new dependency." The headline number for the room: 0 stars, 0 dependents, 0 score — we would be the last consumer.
Engineering: Treat this as vendored code. What it buys is DI and configuration for NuSOAP under Symfony2, nothing more. If the application is on Laravel or Symfony ≥3, do not adopt the bundle — reimplement the wiring, or skip it entirely and go native. Budget 1–2 days to vendor, validate against the target WSDL, and add contract tests around each SOAP operation so partner schema drift surfaces as a test failure rather than a production incident. Isolate every call behind a SoapGatewayInterface bound in a service provider/config so the eventual exit to ext-soap is a one-line binding change, and push all outbound calls onto queues so a dead counterparty cannot exhaust web workers.
Risk register entry: abandoned upstream + EOL framework + no security patch path = acceptable only with an explicit migration ticket, a sunset date, and a named owner.
How can I help you explore Laravel packages today?