Branch: refs/heads/main
Home:
https://github.com/lstrojny/functional-php
Commit: c1667dc86f8bc3122aa52b4d11b24d9f5d6ca09a
https://github.com/lstrojny/functional-php/commit/c1667dc86f8bc3122aa52b4d11b24d9f5d6ca09a
Author: Mattia Basone <
mattia...@gmail.com>
Date: 2026-03-21 (Sat, 21 Mar 2026)
Changed paths:
M .github/workflows/test.yaml
M src/Functional/CompareObjectHashOn.php
M src/Functional/CompareOn.php
M src/Functional/Every.php
M src/Functional/First.php
M src/Functional/Functional.php
M src/Functional/Group.php
M src/Functional/Head.php
M src/Functional/Last.php
M src/Functional/Memoize.php
M src/Functional/None.php
M src/Functional/Pick.php
M src/Functional/Poll.php
M src/Functional/Reject.php
M src/Functional/Retry.php
M src/Functional/Select.php
M src/Functional/Sequences/ExponentialSequence.php
M src/Functional/Sequences/LinearSequence.php
M src/Functional/Some.php
M src/Functional/Tail.php
M src/Functional/Unique.php
M tests/Functional/ErrorToExceptionTest.php
M tests/Functional/GroupTest.php
M tests/Functional/PartialMethodTest.php
M tests/Functional/RepeatTest.php
Log Message:
-----------
PHP 8.4 migration (#257)
* Explicitly mark all nullable parameters
This removes the deprecations introduced in PHP 8.4
* Make iterator return types match Iterator
PHP 8.4 makes not doing so a deprecation.
* Skip tesetErrorIsThrownAsException for PHP >= 8.4
PHP 8.4 deprecates the use of E_USER_ERROR. This can mangle the exception thrown. So, skip the test
in PHP 8.4. It may be possible to fix up what's being thrown, but I haven't found anything.
Since using trigger_error for user errors is now deprecated, error_to_exception() should probably be
deprecated as well. But that's a greater decision than making sure tests work correctly.
* Fix message matching in RepeatTest::testNegativeRepeatedtimes
PHP 8.4 has changed the format of __FUNCTION__ for closures, at least.
* Force doubles to ints in group()
PHP 8.4 deprecates the implicit conversion from doubles to ints when doing so would lose precision.
However, disallowing doubles as array keys in Functional would be a BC break.
* update CI matrix and actions
* use E_USER_DEPRECATED instead of E_USER_ERROR in test
* cs fixes
* update workflows
* add test for float keys
* update test workflow
* use the right method for phpunit < 9
* cs-fixer ignore env
* use the right method for phpunit < 9
* run pcov step only for php version 7.1 which uses older version of phpunit
---------
Co-authored-by: Michael D Johnson <
mjoh...@pitsco.com>
To unsubscribe from these emails, change your notification settings at
https://github.com/lstrojny/functional-php/settings/notifications