Skip to content

Stdlib: ext/soap — SoapClient subset (ext/soap parity) #3724

Description

@PurHur

Category

stdlib

Problem

Enterprise and legacy integrations use SOAP via SoapClient (WSDL fetch, __soapCall, type maps). This compiler has no ext/soap module; class_exists('SoapClient') is false. HTTP client work is partially covered by #3325 / #3721, but not SOAP envelope encoding/decoding.

php-src reference

  • ext/soap/soap.c — SoapClient object handlers
  • ext/soap/php_encoding.c — XML encode/decode
  • ext/soap/php_sdl.c — WSDL parsing
  • Tests: ext/soap/tests/*.phpt

Repro (failure today)

<?php
var_dump(class_exists('SoapClient'));
./script/docker-exec.sh -- bash -lc 'source script/php-env.sh && php bin/vm.php -r "var_dump(class_exists(\"SoapClient\"));"'
# bool(false)

php -r "var_dump(class_exists('SoapClient'));"
# bool(true) when ext/soap enabled in Zend

Scope (this repo) — v1 subset

Module Path
VM ext/soap/ new module (preferred) or explicitly-documented temporary host bridge for bootstrap only
Minimum API SoapClient::__construct, __soapCall, __getFunctions, __getTypes
Fixtures Local test/fixtures/soap/ WSDL + minimal server response bodies (no external network)
Tests test/compliance/cases/stdlib/soap_client_*.phpt
JIT/AOT VM-only v1

Full WSDL cache, SoapServer, and all SOAP 1.2 options are follow-ups.

Done when

  • class_exists('SoapClient') true on VM
  • Local WSDL fixture: __soapCall('echo', ['hello']) returns expected decoded value vs Zend on same fixture
  • No external network required for tests (WSDL + responses are file fixtures)
  • ./script/ci-fast.sh --filter soap_client green
  • Capability matrix notes VM-only / any temporary host-bridge (if used)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:vmVirtual machineenhancementNew feature or requestimplementation-readySpec complete: repro, php-src ref, done-when — safe for workers to claimphase-4:stdlibPhase 4 – stdlib for web apps

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions