Bump requirements to php 8.1 and add additional tools to ease development #50
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I've spend some time getting the project up to date. I have tried to split all changes by meaningful commits to make reviewing it a bit easier.
I have used a number of tools to automatically fix things, most of which I added to the project. The only exception would be the use of rector, which I kept outside of the project since I consider that to be only needed once in a while, compared to the other tools.
Overview of changes
Bump requirements
I marked php 8.1 as the minimum required version as that is the oldest one officially supported php-version.
I bumped the minimal version for
pear/pear-core-minimal
to the oldest one supporting 8.1 and restrictedpear/console_getopt
so no versions not supporting 8.1 are used.Upgraded phpunit to 10.0
This was needed for getting to run on php 8.1.
I did not upgrade to 11.0 (latest) since that one does not support php 8.1.
Added php-cs-fixer
To avoid having to spend time discussing code-style during merge-reviews, I prefer to have php-cs-fixer decide on the codestyle.
I did configure it to my preference, but feel free to propose a different configuration.
It's mostly the configuration for Symfony, but with a couple minor changes as I dislike certain aspects of it.
Added phpstan
This helps in preventing bugs, I cleaned up the code it complained about.
Added github-CI
To be certain MR's do not break the code or add new possible bugs using PHPStan, I've added configuration for github actions to automatically lint and test the code.
General code cleanup
I ran rector and manually fixed some stuff to modernize the code since we now can use syntax not supported in php 7.4.
Gitattributes
I've added
.gitattributes
to make the project lighter when it is installed as a dependency since it will no longer installtests
or other unneeded files.More information about it can be found here
Untested
I did not yet test this version using additional messages, so only the test messages from the unittests have been tested with this new version.
I'm not certain if that is enough as quite a lot of code was changed.