Skip to content

Stdlib: Soap\Url / Soap\Sdl on PROFILE=8.4+ (#23230)#23245

Merged
PurHur merged 1 commit into
masterfrom
fix/23230-soap-url-sdl
Jul 26, 2026
Merged

Stdlib: Soap\Url / Soap\Sdl on PROFILE=8.4+ (#23230)#23245
PurHur merged 1 commit into
masterfrom
fix/23230-soap-url-sdl

Conversation

@PurHur

@PurHur PurHur commented Jul 26, 2026

Copy link
Copy Markdown
Owner

Summary

  • Register final internal Soap\Url / Soap\Sdl when soap is advertised on language profile ≥8.4 (php-src 8.4 resource→object; child of Stdlib: ext/soap — SoapClient subset (ext/soap parity) #3724)
  • Reject userland new via ReservedBuiltinClass (Cannot directly construct Soap\Url / Soap\Sdl)
  • Withhold on reference 8.2 phantom gate; factories ready for later $httpurl / $sdl property wiring

php-src: ext/soap/soap.stub.php, ext/soap/soap.c (soap_url_object_get_constructor)
PHP-in-PHP: ext/soap/VmSoapOpaque.php + SoapExtensionPolicy::advertisesOpaqueUrlSdlTypes() — no new runtime/*.c

Closes #23230

Test plan

  • PHP_COMPILER_PROFILE=8.4 php bin/vm.php test/repro/maintainer_gap_soap_url_sdl_84.phpok
  • reference: Soap\Url / Soap\Sdl class_exists false (phantom phpt)
  • vendor/bin/phpunit --filter SoapExtensionPolicyTest OK
  • PHP_COMPILER_PROFILE=8.4 vendor/bin/phpunit --filter soap_url_sdl OK (VM+JIT)
  • php script/bootstrap-inventory.php --check OK 6562/6562
  • php script/check-selfhost-spine-coverage-sync.php OK

Verification transcript

PHP_COMPILER_PROFILE=8.4 php bin/vm.php test/repro/maintainer_gap_soap_url_sdl_84.php
ok

PHP_COMPILER_PROFILE=8.4 vendor/bin/phpunit --filter soap_url_sdl
OK (2 tests, 2 assertions)

vendor/bin/phpunit --filter SoapExtensionPolicyTest
OK (2 tests, 20 assertions)

php script/bootstrap-inventory.php --check
OK 6562/6562

Made with Cursor

PHP 8.4 resource→object opaque types from ext/soap/soap.stub.php — final
internal classes with userland new rejected; withheld on reference 8.2.

Co-authored-by: Cursor <cursoragent@cursor.com>
@PurHur
PurHur merged commit 170d50a into master Jul 26, 2026
1 check failed
@PurHur
PurHur deleted the fix/23230-soap-url-sdl branch July 26, 2026 00:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Stdlib: Soap\Url / Soap\Sdl missing on PROFILE=8.4+ — resource→object types (ext/soap/soap.stub.php)

1 participant