Add the ability to use php-cs-fixer major version 3.
Add .php-cs-fixer.dist.php (the settings of php-cs-fixer for major version 3) and put the nullable_type_declaration check into it.
Run cs-fixer on PHP 8.4.
Leave the old cs-fixer still running on PHP 7.1.
And run cs-fixer on every PHP version, to be sure. In CI, composer will choose whether to use major version 2 or 3 of php-cs-fixer.
The newer cs-fixer v3 makes various nice fixes that do not break on PHP 7.1.
The old cs-fixer v2 is happy with the changes, it does not try to change them back - that is nice.
This is only needed for this old release series that still has PHP 7.1 support. We can run both cs-fixer and phpstan (and phpunit) on PHP 7.1 through 8.4. I think that helps give confidence that the code works across that range of PHP versions.
Note: when I forward-port all this stuff to later major releases, I won't need to do all this tweaking because we move to supporting only PHP 7.4 and up.
I have confirmed locally with PHP 8.4 that if a remove the ? from a parameter declaration like
?array $elementMap = null
then run cs-fixer,
it finds the problem and puts the ? back - good.
Add the ability to use php-cs-fixer major version 3. Add
.php-cs-fixer.dist.php
(the settings of php-cs-fixer for major version 3) and put thenullable_type_declaration
check into it. Run cs-fixer on PHP 8.4. Leave the old cs-fixer still running on PHP 7.1. And run cs-fixer on every PHP version, to be sure. In CI,composer
will choose whether to use major version 2 or 3 of php-cs-fixer.The newer cs-fixer v3 makes various nice fixes that do not break on PHP 7.1. The old cs-fixer v2 is happy with the changes, it does not try to change them back - that is nice.
This is only needed for this old release series that still has PHP 7.1 support. We can run both cs-fixer and phpstan (and phpunit) on PHP 7.1 through 8.4. I think that helps give confidence that the code works across that range of PHP versions.
Note: when I forward-port all this stuff to later major releases, I won't need to do all this tweaking because we move to supporting only PHP 7.4 and up.