wsdltophp/packagebase
Base library for PHP packages generated from WSDL files by wsdltophp/packagegenerator. It supplies shared runtime utilities, helpers, and common behavior so generated SOAP client code stays lean, consistent, and easier to maintain.
What this package actually is
wsdltophp/packagebase is not an integration library — it is the runtime base-class layer that wsdltophp/packagegenerator emits code against. Its consumers are machine-generated SOAP client/struct classes, not hand-written application code.Architecture fit
AbstractSoapClientBase or AbstractStructBase types.SoapClient subclasses with duplicated header/auth/timeout handling — the base classes standardize that, and expose setSoapClient() for test doubles.Integration feasibility
composer require wsdltophp/packagebase plus the generator as a dev-only tool. Total setup effort is measured in hours; the real cost is the generation pipeline and per-service validation.ext-soap (plus ext-dom/ext-libxml) present in local, CI, and production images; PHP version floor compatible with our runtime.Technical risk
SoapClient, not PSR-18/PSR-7. Swapping transports later means regenerating and rewriting the adapter.SoapClient subclasses and hand-maintained header logic outside the generated code. Confirm these are not in scope before committing.Key questions for the owning team
ext-soap enabled in the production image and every CI job — and does the base image policy allow it long-term?__soapCall flow?SoapClient instances via setSoapClient()?Stack fit
ext-soap and the PHP floor. It will not block framework upgrades — a genuine longevity positive in an otherwise legacy-adjacent choice.app/Infrastructure/Soap/{Service}/ for generated classes (namespaced and excluded from static analysis/coverage as generated), with a thin hand-written {Service}Gateway implementing a domain-owned interface. Domain and HTTP layers see only the interface.SoapClient subclass, not in generated files (regeneration would erase them).Migration path
SoapClient/cURL code exists: migrate one operation at a time behind the new gateway interface (strangler pattern), with the old path live until parity is proven on the same inputs.Compatibility
composer.lock in CI; forbid composer update for these two without an explicit regeneration diff.Sequencing
Maintenance
Support
Scaling
connection_timeout/timeout values on every client.wsdl_cache) or ship local WSDL copies to avoid a runtime dependency on the provider's schema host.Failure modes to instrument
ext-soap missing from a rebuilt base image — fails at class load, so add a startup smoke check.Ramp-up
SoapClient exposure: roughly half a day to understand the base classes and mocking pattern, 1–2 days to be productive on a wrapped client.How can I help you explore Laravel packages today?