Following by the official guide You need to do those steps to upgrade Symfony:
- Make your Code Deprecation Free
- Update to the New Major Version via Composer
- Update recipes
- Update your Code to Work with the New Version
Personally I will add additional steps to this list.
- Upgrade Docker image
- Update deployment scenario
- Update crontab entries
Update Docker image version
I am using Docksal, so upgrading to PHP 8.1 is simply change the version in .docksal/docksal.env file:
CLI_IMAGE="docksal/cli:php8.1"
and run fin start
command.
Find out more about Docksal on official page or on my slides.
Update deployment scenario
Old project might use different composer version and/or different PHP version. In my case I need to download new composer and change command from: php80 ~/bin/composer.phar install
to php81 ~/bin/composer2.phar install
Update crontab entries
Here the change is similar like in deployment scenario. Simply had to change php80
to php81
.
What if any problems?
On my local computer everything was working with no problem. But when I run composer install on server, it throws an error:
$ composer install -n
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
The following exception probably indicates you have misconfigured DNS resolver(s)
[Composer\Downloader\TransportException]
curl error 6 while downloading https://flex.symfony.com/versions.json: Could not resolve host: flex.symfony.com
It seems, that the problem is caused during connection to flex.symfony.com domain. I find out (see at stackoverflow and Symfony), that is due to old symfony/flex library.
To fix this problem I had to run:
$ composer update symfony/flex --no-plugins --no-scripts
and then
$ composer install