Skip to content

[pull] master from php:master#872

Merged
pull[bot] merged 4 commits intoturkdevops:masterfrom
php:master
Apr 18, 2026
Merged

[pull] master from php:master#872
pull[bot] merged 4 commits intoturkdevops:masterfrom
php:master

Conversation

@pull
Copy link
Copy Markdown

@pull pull bot commented Apr 18, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

LamentXU123 and others added 4 commits April 18, 2026 16:53
- Rename field to symlink so that what this field represents is clear
- Convert it from a char* to a zend_string*
- Refactor the implementation of phar_get_link_location() to always return a "new" zend_string*
- Refactor the implementation of phar_get_link_source() to make it more legible
Emit ZEND_ACC_PUBLIC_SET / PROTECTED_SET / PRIVATE_SET from the
corresponding Modifiers::*_SET flags in generated arginfo, gated
to PHP 8.4+ where asymmetric visibility was introduced. Previously
private(set) and friends in stubs parsed without error but produced
no set-visibility flag.

@readonly on DOM property stubs was documentation only and did not
translate to any runtime flag, so reflection reported the properties
as writable while the write_property handler threw on assignment.
Declaring them public private(set) lets the engine reject external
writes via the normal visibility check and lets ReflectionProperty::
isWritable() answer honestly.

After converting virtual properties from @readonly to private(set),
dom_write_property still threw a readonly-modification error. Since
the handler replaces zend_std_write_property, the engine's own
asymmetric-visibility check is bypassed on the write path, so the
DOM handler now raises it explicitly via
zend_asymmetric_visibility_property_modification_error() when the
caller lacks set access. The readonly error is kept as a fallback.
@pull pull bot locked and limited conversation to collaborators Apr 18, 2026
@pull pull bot added the ⤵️ pull label Apr 18, 2026
@pull pull bot merged commit 0236667 into turkdevops:master Apr 18, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants