Мы начинаем использовать PHP 8 в новых проектах. Но мы также переносим старые проекты на новый PHP 8. Проблемы возникают при установке зависимостей.
Поскольку PHP 8 относительно новый, все еще существует множество сторонних пакетов, которые зависят от более старых версий PHP (в основном только из-за устаревшей конфигурации).
Моя версия PHP:
martin@empire:~$ php -v
PHP 8.0.3 (cli) (built: Mar 5 2021 07:54:13) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.3, Copyright (c) Zend Technologies
with Zend OPcache v8.0.3, Copyright (c), by Zend Technologies
Пример composer install
в проекте Symfony:
martin@empire:~/projects/twig-example$ composer install
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Your lock file does not contain a compatible set of packages. Please run composer update.
Problem 1
- twig/twig is locked to version v2.3.0 and an update of this package was not requested.
- twig/twig v2.3.0 requires php ^7.0 -> your php version (8.0.3) does not satisfy that requirement.
Problem 2
- twig/twig v2.3.0 requires php ^7.0 -> your php version (8.0.3) does not satisfy that requirement.
...
Пример composer update
в проекте Laravel 8:
martin@empire:~/projects/collabquest-api$ composer update
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
Problem 1
- jwilsson/spotify-web-api-php[3.6.0, ..., 3.6.2] require php ^7.0 -> your php version (8.0.3) does not satisfy that requirement.
- Root composer.json requires jwilsson/spotify-web-api-php ^3.6 -> satisfiable by jwilsson/spotify-web-api-php[3.6.0, 3.6.1, 3.6.2].
Как лучше всего справиться с этой проблемой и решить эту проблему зависимости?