- Is smartbox/besimple-soap a Laravel package?
- Not really. It is a single-company fork of the dormant BeSimpleSoap project, whose core clients and servers are framework-agnostic and whose integration layer is a Symfony bundle. The technical assessment found no Laravel service provider, facade, or publishable config, so in Laravel you would consume the core classes directly and write your own glue.
- How do I install smartbox/besimple-soap in a Laravel app?
- You can require the Composer package, but do not install the Symfony bundle into Laravel; pull in only the core client or server components you need. Expect to wire configuration and dependency injection yourself through a framework-owned adapter or service class. Verify ext-soap is enabled in your runtime first, because the package depends on PHP's native SOAP extension.
- Does it support Laravel 10 or Laravel 11?
- It is unclear and risky. The package was last released in 2020 and its Symfony bundle constrains Symfony 2.8 to 4.x, which conflicts with the Symfony 6 or 7 components used by Laravel 10 and 11. The assessment recommends never installing the bundle inside Laravel and verifying the core libraries empirically against your runtime before committing.
- What PHP versions does it support?
- The 2020 fork realistically targets PHP 7.2 to 7.4 with only partial PHP 8.0 coverage; PHP 8.1, 8.2, and 8.3 correctness is not guaranteed. Treat any newer-runtime support as something you must test and potentially patch yourself. This matters if your Laravel application runs on a modern PHP version.
- How do I call a WSDL-based SOAP service with it?
- You instantiate the BeSimple SOAP client with a WSDL path or URL and optional client options, then call service methods through that client; responses are handled as native SOAP results. Because there is no Laravel integration, wrap the client behind an interface or dedicated service class in your app so you can swap implementations later. Confirm the WSDL is reachable and cached appropriately in each environment.
- Does it provide a Laravel facade or service provider?
- No. The assessment explicitly found no Laravel service provider, no publishable config, and no facade; the only framework integration shipped is the Symfony bundle. Any Laravel-style workflow you want, including configuration, facades, and bindings, must be built by your team as a thin adapter around the core library.
- Can it generate WSDL from PHP classes?
- Yes, server-side WSDL generation from annotated PHP classes is the library's genuinely distinctive capability. If you are the service provider and need schema derivation from docblocks or annotations, that is the one reason BeSimple might still be a candidate. If you only consume a SOAP service, native SoapClient or a maintained client such as phpro/soap-client is a better fit.
- What are the best alternatives for SOAP in Laravel?
- For client-only use, native SoapClient with a classmap or phpro/soap-client is recommended; phpro is actively maintained, supports PHP 8.x, and offers PSR-18 transports and testability. Put either behind a framework-owned interface so your application code does not depend on the SOAP library directly. Only consider BeSimple if server-side WSDL generation is a hard requirement.
- Is smartbox/besimple-soap maintained and safe for production?
- It shows clear abandonment signals: last release in 2020, one star, zero dependents, no issue triage, no CI signal, and no security policy or CVE response path. Every defect you hit becomes yours by default. The underlying library was respectable in its day, but there is no community safety net, so treat adoption as taking ownership of a fork. Also audit XML parsing paths for external entity and entity substitution hardening rather than assuming defaults match PHP 8.
- Does it require ext-soap, and how should I handle Docker and CI?
- Yes, the package is a convenience layer over PHP's native ext-soap, so the extension must be compiled and enabled in every target environment. Hardened and distroless images often omit it, making this a container rebuild item and a CI parity item rather than a footnote. Add an explicit extension check to your build and pipeline.