Future is a library that facilitates the upgrade process of PHP projects. It can help you in 3 major areas:
Future will test if your project is able to run using the latest platform configuration (e.g. the latest PHP version) and will provide a detailed summary of any encountered issue.
On top of the platform upgrade, it will test if your project is able to run using the latest version of your direct Composer dependencies and will provide a list of blockers that stop you from upgrading.
Finally, Future will test if your project is compatible with the latest coding standards with the help of Rector.
- A Composer-based Project
- A Continuous Integration Pipeline
- A Test Suite
composer require --dev evozon/future
Please refer to the links below for information on how to configure Future:
After you have installed and configured Future, run the pipeline and check the output of the future-proofing
job.
Please refer to CONTRIBUTING.md for information on how to contribute to Future.
Future can be used to test if you can upgrade everything at once: the latest PHP version, the latest versions for your Composer dependencies, and the latest codebase standards. We advise against this since it may lead to massive amounts of changes that are hard to review and test.
We recommend splitting the upgrade process into stages. Start with the PHP version upgrade (one minor version at a time), continue with the dependencies upgrade and finish with the codebase changes. This way you can have smaller PRs that are easier to review and test.
Thanks to Rector for providing the tool that does the heavy lifting. Future uses Rector to upgrade the codebase to the latest coding standards.