Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Wsdl2Php Generator Cli Laravel Package

venture-oak-labs/wsdl2php-generator-cli

A command-line tool that generates PHP classes from WSDL files, streamlining SOAP client development. It wraps the wsdl2php-generator package in a ready-to-use CLI for faster integration and less boilerplate.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. This is a build-time code generation tool, not a runtime library. That is the single most important architectural fact: it never appears in a production request path. It generates PHP value objects and service classes from a WSDL, which a Laravel application then consumes through a hand-written adapter over SoapClient (or a PSR-18 SOAP client). The correct placement is require-dev, invoked manually or in CI, with output committed to the repository under a dedicated namespace such as App\Integrations\{Vendor}\Soap. The package itself is a thin console wrapper around the underlying wsdl2phpgenerator library; its own surface area is small, and it contributes almost no logic beyond argument parsing and file output. The architectural dependency that matters is the underlying generator, not this wrapper.

Integration feasibility. High in the narrow sense: composer require --dev, point it at a WSDL file or URL, get a directory of classes. There is no framework coupling, no service provider, no configuration contract. For a Laravel team this is genuinely low ceremony. The realistic friction points are all in the generated output rather than the tool: namespace and directory mapping, handling of complex or recursive xsd types, choice/sequence inheritance, nil-able elements, and enumeration classes. Those are properties of the generator and its configuration, which this wrapper exposes only partially.

Technical risk. The dominant risk is supply chain, not technology. Four stars and zero dependents is a clear signal that this is a personal utility, and the upstream wsdl2phpgenerator project has historically moved slowly and lagged on PHP 8 compatibility. A TPM should assume the tool is effectively unmaintained and plan for the team to own it. Secondary risks:

  • Generated code is often non-deterministic across runs (ordering, whitespace), producing noisy diffs that obscure real upstream WSDL changes.
  • Large enterprise WSDLs can emit hundreds or thousands of classes, with weak type fidelity on anyType and inline anonymous types.
  • The generator does not solve WS-Security, MTOM/SwA attachments, SOAP headers, or xsd:any — those require hand-written client code regardless of what is generated.
  • Generated classes are frequently not PSR-4 clean without manual post-processing.

Key questions. What is the concrete integration (vendor, protocol version, WS-Security required)? Does the WSDL import external XSDs over HTTP, and will CI have network access to them? Who owns the fork if PHP compatibility breaks? Is there an alternative with active maintenance (wsdltophp) and why is it not preferred? How will WSDL drift be detected — is the source WSDL versioned in-repo?

Integration Approach

Stack fit. Acceptable for a Laravel 8+ codebase on PHP 7.4/8.0 where a SOAP integration is a bounded, one-off enterprise requirement (ERP, payment gateway, carrier API, government service). It is a poor fit for greenfield services, for anything with more than one or two SOAP endpoints, or where the vendor offers REST/JSON. The pragmatic framing: this is a scaffolding accelerator used once during a spike, not an ongoing dependency.

Migration path. There is no migration — it is additive. Run the generator in a throwaway branch, review the output, curate it (rename namespaces, strip unused types, add strict_types), and commit the survivors. Treat generated code as vendored source, not as a build artifact, so that a break in the tool never blocks a deploy. Document the exact invocation and the WSDL revision SHA in a README beside the generated directory so regeneration is reproducible.

Compatibility. Verify PHP version support of both the wrapper and the upstream generator before adoption; do not assume a composer require that resolves also works at runtime. Check that generated code does not use deprecated or removed constructs (each, dynamic properties under PHP 8.2). If the WSDL requires WS-Security, plan on SoapClient with a local certificate and manual WSSE header construction — outside this tool's scope.

Sequencing.

  1. Spike: generate against the real WSDL, audit output quality and class count. This is a go/no-go gate.
  2. Curate and commit generated classes into a versioned namespace.
  3. Write a hand-rolled client/adapter ({Vendor}Client) exposing domain-shaped methods, bound as a singleton in a service provider with credentials from config.
  4. Build contract tests using recorded SOAP fixtures (e.g. VCR-style recording) so the pipeline does not depend on the vendor's sandbox.
  5. Only then wire into application services. Never let application code call generated classes directly — the adapter is the seam that lets you swap generators or hand-write DTOs later.

Operational Impact

Maintenance. Effectively internal ownership from day one. With zero dependents and single-digit stars, there is no community to absorb upgrades. Budget a small, fixed maintenance allowance: an annual PHP-version compatibility check, and a defined trigger for forking (a PHP minor release that breaks the generator, or an upstream WSDL change that the tool cannot parse). Pin the version exactly in composer.json and commit the lockfile.

Support. Community-only, best-effort, no vendor, no SLA. The blast radius is contained because the tool runs on developer machines and CI, not in production — an outage manifests as "cannot regenerate," not as "site down." The real production exposure is the committed generated code plus the hand-written SOAP client, both of which the team owns entirely.

Scaling. Two dimensions. Vertically, generation time and memory on very large WSDLs can be significant but is a CI concern only. Horizontally, the generated class count is what scales — a 5,000-class namespace is a real navigation and autoload burden. Mitigate by generating only the service and types actually used, and by keeping generated code in a clearly quarantined directory excluded from static analysis baselines and coverage thresholds.

Failure modes.

  • Silent upstream WSDL change (vendor adds a field or changes a type) producing runtime SoapFaults that only appear in production traffic. Mitigate by vendoring the WSDL and diffing it on a schedule.
  • Generator breaks on a PHP upgrade, blocking regeneration but not deploys — degraded, not down.
  • Non-deterministic output drowning real changes in diff noise.
  • Missing WS-Security/MTOM support discovered late, forcing hand-written SOAP envelopes.
  • Network-dependent XSD imports failing in CI.

Ramp-up. Low for the mechanics — a mid-level engineer can generate and commit classes in an afternoon. High for the judgment: knowing which generated types to keep, how to wrap the client with retries and timeouts, how to map SoapFault into domain exceptions, and how to test against a flaky vendor sandbox. Assume one experienced engineer owns the integration end to end; do not distribute SOAP edge cases across the team.

TPM verdict. Low strategic value, narrow tactical utility. Approve only as a disposable scaffolding tool for a single, bounded SOAP integration, with generated output committed and owned internally, and with wsdltophp evaluated in parallel as the maintained fallback. Do not add it to a platform standard or shared service template.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log