-
-
Notifications
You must be signed in to change notification settings - Fork 44
Add Support for PHP 8.5, Drop Support for PHP 8.1 #129
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
gsteel
commented
Oct 9, 2025
- Adds Support for PHP 8.5 in Composer
- Upgrades Psalm to latest, fixing or baselining where appropriate
- Psalm upgrade necessitates soft or hard final throughout, but a number of shipped classes have been baselined for this as they are likely extension points.
Signed-off-by: George Steel <[email protected]>
Signed-off-by: George Steel <[email protected]>
Signed-off-by: George Steel <[email protected]>
Signed-off-by: George Steel <[email protected]>
Signed-off-by: George Steel <[email protected]>
Signed-off-by: George Steel <[email protected]>
Signed-off-by: George Steel <[email protected]>
Signed-off-by: George Steel <[email protected]>
Signed-off-by: George Steel <[email protected]>
Signed-off-by: George Steel <[email protected]>
Signed-off-by: George Steel <[email protected]>
|
class must be final should be disabled for src imo. <issueHandlers>
<ClassMustBeFinal>
<errorLevel type="suppress">
<directory name="src" />
</errorLevel>
</ClassMustBeFinal>
</issueHandlers> |
For this lib, perhaps, because it contains quite a few extension points - but even then, it forces us to explicitly state which shipped classes are fit for user inheritance. I'd argue that there are several non-final classes here that could/should be final. Generally speaking, I prefer |
Signed-off-by: George Steel <[email protected]>
|
So... how do we deal with the failures? They are, pretty much: |
|
The only failure is We have |
|
For my reference: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_arrayobject_and_arrayiterator_with_objects Obviously you already know about this @Ocramius considering you voted on it 😁 |
…l with the PHP deprecation in 8.5 of the same nature. Signed-off-by: George Steel <[email protected]>
|
I've deprecated passing non-array values to Why does this re-implementation of Also, rather than fixing the actual PHP deprecation in the test, I'm effecitively silencing it. |
IIRC it was needed to better mimic array behavior with nested values. This one returns by reference so the code below works: $arrayObject['nested_array']['foo'] = 'bar';Array access has many other quirks so we no longer use it anywhere. zend-config was the biggest consumer I think. |
Yeah, it was more about what we do about it. I'm fine with deprecating our behavior 👍 |
Ocramius
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🚢
|
Thanks @gsteel! |