Skip to content

Stdlib: zip_open named filename + zip_* stub param names (#24666) - #32169

Merged
PurHur merged 1 commit into
masterfrom
agent/ext-io-24666-zip-open-named
Aug 18, 2026
Merged

Stdlib: zip_open named filename + zip_* stub param names (#24666)#32169
PurHur merged 1 commit into
masterfrom
agent/ext-io-24666-zip-open-named

Conversation

@PurHur

@PurHur PurHur commented Aug 18, 2026

Copy link
Copy Markdown
Owner

Summary

Closes #24666

php-src reference

  • ext/zip/php_zip.stub.phpzip_open(string $filename), zip_close($zip), zip_entry_close($zip_entry), …

PHP implementation

  • lib/BuiltinParamNames.php — explicit stub names
  • ext/zip/VmZipProcedural.php + zip_close.php / zip_read.php / zip_entry_open.php — TypeError labels

Test plan

  • Issue repro (zip enabled):
    ./script/docker-exec.sh -- bash -lc 'PHP_COMPILER_ENABLE_ZIP=1 php bin/vm.php test/repro/issue_24666_zip_open_named.php'
    
    Output:
    params=filename
    pos=false
    named=false
    close_params=zip_entry
    zip_entry=zip_entry_close(): Argument #1 ($zip_entry) must be of type resource, bool given
    zip_ent=Unknown named parameter $zip_ent
    
  • ./script/docker-exec.sh -- bash -lc 'source script/php-env.sh && vendor/bin/phpunit --filter ZipModuleTest test/unit/ZipModuleTest.php' — OK (2 tests)
  • vendor/bin/phpunit --filter testZipProceduralZendStubNamedParams — OK (29 assertions)
  • vendor/bin/phpunit test/unit/ZipArchiveTest.php test/unit/ZipExtensionPolicyTest.php — OK (80 assertions)
  • Not run: ci-fast.sh, AOT (procedural zip is VM-only, Stdlib: zip_open()/zip_read()/zip_close()/zip_entry_*() — procedural zip API missing (ext/zip/php_zip.c) #6370), north-star5-verify

Made with Cursor

Wire php-src php_zip.stub.php names so zip_entry_close(zip_entry:) binds (InternalArgInfo still zip_ent) and TypeError labels use $zip / $zip_dp instead of $filename.

Co-authored-by: Cursor <cursoragent@cursor.com>
@PurHur
PurHur merged commit bf1e42b into master Aug 18, 2026
1 check failed
@PurHur
PurHur deleted the agent/ext-io-24666-zip-open-named branch August 18, 2026 11:44
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.

Regression: zip_open Reflection filename OK but named filename rejected (ext/zip/php_zip.stub.php)

1 participant